Почему = SUMIF (C5: C19, НЕ (ISFORMULA (C5: C19))) возвращает ноль? - PullRequest
0 голосов
/ 09 мая 2019

У меня есть таблица, в которой я отслеживаю свои часы. Каждая ячейка изначально заполнена формулой, т.е. =IF(WORKDAY(B24-1,1,holidays2019)=B24,OFFSET(C24,-1,2),0) и затем, по ходу месяца, я ввожу свое фактическое время.

  • В следующем отрывке вводятся все значения до 10/10/2019.
  • Формула =SUMIF(C5:C19,NOT(ISFORMULA(C5:C19))) показывает ноль. Я не понимаю, почему это не работает.
  • Я ценю любую помощь! Столбец B в моей электронной таблице соответствует датам, указанным ниже, а столбец C - записям времени.
  • Ожидаемый результат: 48,9

enter image description here

Ответы [ 3 ]

3 голосов
/ 09 мая 2019
=SUMPRODUCT(J6:J20,--NOT(ISFORMULA(J6:J20)))

Ключом к этому решению является - перед NOT ().Логическое значение, которое обрабатывается математическим оператором, преобразуется в 1 или 0. -, +0, -0, * 1, / 1 все работало бы для преобразования.Итак, теперь вы получите массив значений, которые вы можете суммировать, умножив их на массивы 1 и 0, чтобы указать те, которые вы хотите.1 - ввод вручную, а 0 - ввод формул.

POC

Теперь SUMPRODUCT выполняет вычисления, подобные массиву.В результате избегайте использования полных ссылок на столбцы / строки внутри него, иначе вы получите много лишних вычислений.Настройте диапазоны в ответе в соответствии с вашими потребностями.

2 голосов
/ 09 мая 2019

Вот MSDN определение Критерии в =SUMIF

Требуется критерии.Критерии в виде числа, выражения, ссылки на ячейку, текста или функции, определяющей, какие ячейки будут добавлены.Например, критерии могут быть выражены как 32, ">32", B5, "32", "apples" или TODAY().

Внимание: любые текстовые критерии илилюбые критерии, которые включают логические или математические символы, должны быть заключены в двойные кавычки ("). Если критерий является числовым, двойные кавычки не требуются.

Итак, причина, почемуваш SUMIF возвращает 0, потому что ни одна из ячеек не соответствует критериям, так как они возвращают число, и в то же время они ожидают FALSE

Другая проблема заключается в том, что ISFORMULA вернется TRUE, даже если диапазон содержит одну формулу, а все остальные не имеют ни одной, поэтому в основном вам нужно перетащить формулу вниз для каждой ячейки отдельно и суммировать их только тогда, когда значение равно TRUE

Началоиз ячейки D1:

=ISFORMULA(B1)

enter image description here

И затем вы можете просто суммировать их с формулой, которую вы предоставили.

=SUMIF(D1:D16,TRUE,C1:C16)

enter image description here

Очевидно, вы можете скрытьстолбец D, чтобы сделать его более эстетичным.

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

Ваша формула не выполнена, поскольку критерий, с которым вы сопоставляете, равен TRUE / FALSE. Очевидно, что значения в C5: C19 не содержат логических значений, поэтому сумма равна 0.

Чтобы решить эту проблему, вы можете добавить правильные критерии в ячейку D5 и ниже: =ISFORMULA(C5) Затем используйте =SUMIF(D5:D19,FALSE,C5:C19) для суммирования значений в столбце C.

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