Google Sheets - СЧИТАЙТЕ УНИКАЛЬНЫЕ значения по группам ТОЛЬКО ЕСЛИ НЕ СЧИТАЕТСЯ в предыдущей группе

Я надеюсь четко объяснить, что я пытаюсь сделать.

У меня есть некоторые данные в столбце B, сгруппированные, как показано в столбце A.

Я хотел бы подсчитать уникальные значения для каждой группы, представленной в столбце А, не принимая во внимание уникальные значения, уже подсчитанные в предыдущих группах.

Например, я хотел бы:

  • считать уникальные значения в 'proyecto2', НЕ СЧИТАЯ уникальные значения, уже присутствующие в 'proyecto1'.
  • считать уникальные значения в «proyecto3», НЕ СЧИТАЯ уникальные значения, уже присутствующие в «proyecto1» и «proyecto2».
  • считать уникальные значения в «proyecto4», НЕ СЧИТАЯ уникальные значения, уже присутствующие в «proyecto1», «proyecto2» и «proyecto3».
  • и так далее...

Ниже вы можете найти Google Sheet с решением, которое я нашел, даже если я не очень доволен им, чтобы легко показать, что я имею в виду.

https://docs.google.com/spreadsheets/d/1x8S76_6dUnHr1NtUbzNzpLTpQtqan6_ohemcrGsrpC0/edit#gid=0

По сути, в столбце A: B у нас есть входные данные. Вы можете добавить данные в столбцы A и B, чтобы увидеть, как это работает (мой метод, на данный момент, работает, только если вы добавляете одну из следующих групп в столбец A: 'proyecto1', 'proyecto2', 'proyecto3', 'proyecto4' , 'proyecto5' и 'proyecto6').

В столбце D: E у нас есть выходные данные, в основном, уникальные значения, подсчитанные группой.

В столбце G: W формула для обработки данных.

Ясно, что мой метод работает до «proyecto6», поскольку в «столбцах обработки» я учитываю формулу только до «proyecto6».

Все работает, но мой вопрос: не могли бы вы предложить мне более динамичный способ достижения того, что я пытаюсь сделать? Или единственный способ написать код?

Всего 1 ответ


  • удалить все в диапазоне D: Z
  • вставить в ячейку D2 :

    =UNIQUE(A2:A)

  • вставить в ячейку E2 :

    =ARRAYFORMULA(IF(LEN(D2:D); 
     MMULT(IFERROR(LEN(G2:Z)/LEN(G2:Z); 0); TRANSPOSE(COLUMN(G2:Z2)^0)); ))

  • вставить в ячейку G2 :

    =TRANSPOSE(UNIQUE(FILTER(B$2:B; A$2:A=D2)))

  • вставьте в ячейку G3 и перетащите вниз:

    =TRANSPOSE(UNIQUE(FILTER(FILTER(B$2:B; A$2:A=D3);
     NOT(COUNTIF(INDIRECT("G2:"&ROW()-1); FILTER(B$2:B; A$2:A=D3))))))
    0


Есть идеи?

10000