Excel: подсчет ячеек в матрице с несколькими условиями

437
ColdBrew

У меня есть таблица table1с матрицей из n столбцов, [[column_1]:[column_n]]которые содержат даты или пустые поля.
Также есть столбец [number]с целыми числами.

Я хочу подсчитать все ячейки, которые содержат дату в прошлом И находятся в строке, где соответствующее число равно 0. Как мне это сделать?

Легко только первое условие: =COUNTIF(Table1[[column_1]:[column_n]];"<"&TODAY())
но я не рассматриваю только те строки, в которых целое число равно 0.

Я знаю, что, вероятно, есть подход с использованием функций массива, но я не могу понять это. Поиск в Google был безрезультатным.
Спасибо за вашу помощь!

1
К сожалению, Excel не умеет работать с 2D-диапазонами и списками одновременно. Вам нужно посчитать значения по строке (`= COUNTIF (Table1 [@ [column_1]: [column_n]];" <"& TODAY ()) * (table1 [@ [number]] = 0)`) и суммировать их в второй шаг. (Не забывайте `@` в формуле) Máté Juhász 5 лет назад 1
Ну, что ж, спасибо! Я думаю, что есть предел того, что вы можете сделать без VBA, но это полезно знать. ColdBrew 5 лет назад 0

1 ответ на вопрос

0
XOR LX

Переключиться на SUMPRODUCT:

=SUMPRODUCT((Table1[[column_1]:[column_n]]<TODAY())*(Table1[number]=0))

С уважением

Это похоже на путь! И он возвращает разумное значение, за исключением того, что он также считает пустые ячейки датами, которые находятся в будущем. Есть ли способ опустить эти? ColdBrew 5 лет назад 0
Хорошо, я нашел решение для этого. (хотя и не очень элегантно) = SUMPRODUCT ((IF (ISEMPTY (Table1 [[column_1]: [column_n]]); FALSE (); Table1 [[column_1]: [column_n]]]) ColdBrew 5 лет назад 0

Похожие вопросы