Я пытаюсь подсчитать количество строк, соответствующих различным условиям, поэтому я использую формулу массива в форме

=SUM(IF(...,1,0))

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

=SUM(IF(ISNUMBER(A:A),1,0))

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

=SUM(IF(AND(ISNUMBER(A:A),TRUE()),1,0))

Возвращает 0. Черт, даже это возвращает 0:

=SUM(IF(AND(ISNUMBER(A:A)),1,0))

Просто для удовольствия, я попробовал это:

=SUM(IF(OR(TRUE(),ISBLANK(A:A)),1,0))

И это 1 вместо 1048576. Таким образом, независимо от того, используете ли вы И или ИЛИ, это означает, что он либо возвращает 0, либо 1 каждый раз соответственно (я также проверял порядок ссылки на ячейку в функциях ИЛИ и И).

Это выглядит как недостаток, так как другие сложные формулы, такие как эта работа, как и ожидалось:

=SUM(IF(ISNUMBER(SEARCH("MagicString",A:A)),1,0))

Итак, как мне использовать нетривиальную условную логику для подсчета строк?

PS Использование Office 2013

PPS Автоматическая оценка отключена, и я удостоверился, что нажал F9, чтобы обновить вычисления.

1 ответ1

1

Вы не можете использовать AND() или OR() в формулах типа массива. Увидеть:

Предыдущий пост

Есть простые обходные пути, использующие плюс или умножение

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