Как считать уникальные значения, только если два других столбца соответствуют определенным значениям - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь посчитать разные значения идентификаторов, когда местоположение и дата совпадают с конкретными значениями.

Существует несколько статей / вопросов, которые описывают несколько различных способов сделать это (например, Как считать уникальные значения в Excel с двумя условиями ), но по какой-то причине ни один из них не кажется работает на меня (что, вероятно, потому, что я делаю что-то не так).

Мой стол в Excel настроен так

+------------------+--------------+------------+
| Col A - Location | Col B - Date | Col C - ID |
+------------------+--------------+------------+
|         A        |   Mar 2018   |      1     |         
|         B        |   Mar 2018   |      2     |
|         C        |   Mar 2018   |      3     |
|         A        |   Mar 2018   |      4     |
|         B        |   Mar 2018   |            |
|         C        |   Mar 2018   |      5     |
|         A        |   Mar 2018   |      6     |
|         B        |   Apr 2018   |      1     |
|         C        |   Apr 2018   |      2     |
|         C        |   Apr 2018   |      4     |
|         C        |   Mar 2018   |      5     |
|         A        |   Mar 2018   |      1     |
|         B        |   Mar 2018   |      5     |
|         B        |   Mar 2018   |      8     |
|         B        |   Mar 2018   |            |
|         C        |   Mar 2018   |      1     |
|         B        |   Mar 2018   |      3     |
+------------------+--------------+------------+

Я попробовал 4 различных вычисления, которые я нашел онлайн и изменил, чтобы соответствовать моим данным:

Calc 1 (run by just hitting ENTER):
=COUNTIFS(A:A, "A",C:C,C:C,B:B, "Mar 2018")

Result = 2


Calc 2 (running by hitting CTRL + SHFT + ENTER):
=SUMPRODUCT( ( (C:C <> "") * (A:A = "A") * (B:B = "Mar 2018") ) / COUNTIFS(C:C,C:C  & "",A:A, "A",B:B, "Mar 2018"))

Result = 0


Calc 3 (running by hitting CTRL + SHFT + ENTER):
=SUM(IF(FREQUENCY(IF(C:C<>"", MATCH(C:C,C:C,0)),ROW(C:C)-ROW(C2)+1),1))

Result = 0


Calc 4 (running by hitting CTRL + SHFT + ENTER):
=SUM(IF(FREQUENCY(IF((A:A="A")*(B:B="Mar 2018")*(C:C<>""),MATCH(C:C,C:C,0)),ROW(C:C)-MIN(ROW(C:C))+1),1))

Result = 0 
(This one keeps giving an error message about running out of resources while trying to calculate)

Фактические результаты, которые я пытаюсь найти, состоят в том, что для 'Col A - Location', где значение равно 'A', и для 'Col B - Date', где значение равно 'Mar 2018', уникальный # of 'Col C - ID 'должно быть 3.

1 Ответ

1 голос
/ 10 мая 2019

Самый простой способ подсчета по нескольким критериям - использовать SUMPRODUCT:

=SUMPRODUCT(--(A1:A20="A"),--(B1:B20=DATE(2018,3,1)),--(C1:C20=3))

двойной отрицательный знак (-) преобразует ответы True / False в 1 или 0, чтобы sumproduct выполнял свою работу.

Я предлагаю вам ограничить свои диапазоны (т.е. не использовать целые столбцы, такие как A: A), потому что это замедлит формулу (сильно).Кроме того, может быть проще использовать заблокированную ячейку ссылки для ваших условий.Если вы вводите свои условия в первой строке, вы можете использовать:

=SUMPRODUCT(--(A2:A20=$A$1),--(B2:B20=$B$1),--(C1:C20=$C$1))

Редактировать

После разъяснения beatrixb вам понадобится вспомогательный столбец для объединения трехколонны.Предполагая, что ваши данные начинаются с A2, вы должны поместить это в D2 (если у вас еще нет уникального идентификатора для каждой строки):

=A2&B2&C2

И использовать эту формулу в другой ячейке, чтобы получить числоуникальные значения, основанные на двух условиях:

=SUMPRODUCT(--(A2:A20=$A$1),--(B2:B20=$B$1),(1/COUNTIF(D2:D20,D2:D20)))
...