Excel sumproduct в нескольких диапазонах и посчитать результаты - PullRequest
0 голосов
/ 30 марта 2012

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

В одной рабочей книге у нас есть данные, показывающие дату, когда произошло событие, и идентификатор человека, который провел мероприятие.

Затем мы хотим подвести итоги по другому.

Чтобы получить общее количество событий, которые произошли в дату для определенной группы идентификаторов пользователей, у нас есть рабочая книга с двумя датами в столбцах A и B и формулой:

=SUMPRODUCT(('[DATABASE 1.xlsx]Sheet1'!$AB$3:$AB$71692>=A3)*('[DATABASE 1.xlsx]Sheet1'!$AB$3:$AB$71692<=B3)*('[DATABASE 1.xlsx]Sheet1'!$AC$3:$AC$71692>=548)*('[DATABASE 1.xlsx]Sheet1'!$AC$3:$AC$71692>=554)

Это дает общее количество событий для этой группы пользователей между этими двумя датами.

Во втором столбце мы хотим узнать общее количество людей из этой группы, которые пришли на какие-либо мероприятия в этот день. По сути, мы хотим рассчитать число уникальных идентификаторов пользователей между 548 и 554, которые ввели записи между этими двумя датами.

Как бы этого достичь?

1 Ответ

0 голосов
/ 30 марта 2012

Попробуйте эту "формулу массива"

=SUM(ISNUMBER(MATCH({548,549,550,551,552,553,554},IF(('[DATABASE 1.xlsx]Sheet1'!$AB$3:$AB$71692>=A3)*('[DATABASE 1.xlsx]Sheet1'!$AB$3:$AB$71692<=B3),'[DATABASE 1.xlsx]Sheet1'!$AC$3:$AC$71692),0))+0)

подтверждается сочетанием клавиш CTRL + SHIFT + ENTER

Для больших диапазонов, чем 548 to 554, например 500 to 600 изменить на эту версию:

=SUM(ISNUMBER(MATCH(ROW(INDIRECT("500:600")),IF(('[DATABASE 1.xlsx]Sheet1'!$AB$3:$AB$71692>=A3)*('[DATABASE 1.xlsx]Sheet1'!$AB$3:$AB$71692<=B3),'[DATABASE 1.xlsx]Sheet1'!$AC$3:$AC$71692),0))+0)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...