У меня есть лист со строками следующим образом (Дата в формате Excel Дата, Факт, Разница), с одним набором из 3 столбцов для каждой недели года.

Значения в первом столбце представляют сокращенные часы недели для данного клиента.

Во втором столбце будет указано, сколько часов фактически заняла работа.

Третья разница.

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

Вот что я попробовал: = SUMIF(J1: FO1, ISNUMBER(J1), J2: FO2)

Где J1:FO1 - заголовки (напр. 1/5/18, Actual, Difference), оператор ISNUMBER преобразуется в True, когда J1 - это дата (которая преобразуется в число), а J2:FO2 - первая строка данных клиента.

Хотя это не выдает ошибку, но на самом деле не добавляет числа в J2:FO2.

Есть идеи?

1 ответ1

2

Это потому, что ISNUMBER(J1) разрешается в TRUE или FALSE зависимости от того, что находится в J1 . Затем SUMIF() пытается найти, где J1:FO1 TRUE или FALSE не число.

SUMIF не может быть использован таким образом. Он оптимизирован и хочет строку, а не формулу.

Вам нужно будет использовать что-то вроде:

=SUMPRODUCT(--ISNUMBER(J1:FO1),J2:FO2)

или следующая формула массива:

=SUM(IF(ISNUMBER(J1:FO1),J2:FO2))

Будучи формулой массива, она должна быть подтверждена Ctrl-Shift-Enter вместо Enter.

Оба будут перебирать диапазон и добавлять значения, где ISNUMBER возвращает TRUE .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .