Формула Excel: количество ячеек не равно многим -

Содержание

Общая формула

=SUMPRODUCT(--(ISNA(MATCH(data,exclude,0))))

Резюме

Для подсчета ячеек, не равных многим параметрам, можно использовать формулу, основанную на функциях ПОИСКПОЗ, ISNA и СУММПРОИЗВ. В показанном примере формула в ячейке F5:

=SUMPRODUCT(--(ISNA(MATCH(data,exclude,0))))

где «данные» - именованный диапазон B5: B16, а «exclude» - именованный диапазон D5: D7.

Объяснение

Во-первых, немного контекста. Обычно, если у вас есть всего пара вещей, которые вы не хотите считать, вы можете использовать СЧЁТЕСЛИМН, как это:

=COUNTIFS(range,"apple",range,"orange")

Но это не очень хорошо масштабируется, если у вас есть список из многих вещей, потому что вам придется добавить дополнительную пару диапазон / критерий для каждой вещи, которую вы не хотите считать. Было бы намного проще создать список и передать ссылку на этот список как часть критериев. Именно это и делает формула на этой странице.

По сути, эта формула использует функцию ПОИСКПОЗ для поиска ячеек, не равных «a», «b» или «c», с помощью следующего выражения:

MATCH(data,exclude,0)

Обратите внимание, что поисковое значение и поисковый массив «перевернуты» по сравнению с нормальной конфигурацией - мы предоставляем все значения из именованного диапазона «data» в качестве значений поиска и даем все значения, которые мы хотим исключить, в именованном диапазоне «exclude». Поскольку мы передаем MATCH несколько значений поиска, мы получаем более одного результата в таком массиве:

(1;2;3;#N/A;#N/A;#N/A;1;2;3;#N/A;1)

По сути, ПОИСКПОЗ дает нам позицию совпадающих значений в виде числа и возвращает # N / A для всех остальных значений.

Нас интересуют результаты # N / A, поскольку они представляют значения, не равные «a», «b» или «c». Соответственно, мы используем ISNA, чтобы заставить эти значения иметь значение ИСТИНА, а числа - ЛОЖЬ:

ISNA(MATCH(data,exclude,0)

Затем мы используем двойное отрицание, чтобы привести ИСТИНА к 1 и ЛОЖЬ к нулю. Результирующий массив внутри SUMPRODUCT выглядит так:

=SUMPRODUCT((0;0;0;1;1;1;0;0;0;1;0))

Имея только один массив для обработки, SUMPRODUCT суммирует и возвращает окончательный результат 4.

Примечание. Использование СУММПРОИЗВ вместо СУММ позволяет избежать использования клавиш Ctrl + Shift + Enter.

Считать минус совпадение

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

=COUNTA(range)-SUMPRODUCT(COUNTIF(range,exclude))

Здесь COUNTA возвращает количество всех непустых ячеек. Функция СЧЁТЕСЛИ, учитывая именованный диапазон «exclude», вернет три числа, по одному для каждого элемента в списке. СУММПРОИЗВ суммирует итог, и это число вычитается из количества всех непустых ячеек. Конечный результат - количество ячеек, которые не равны значениям в «исключить».

Литерал содержит логику типов

Формула на этой странице рассчитывается по логике «равно». Если вам нужно подсчитать ячейки, которые не содержат много строк, где содержит означает, что строка может появиться в любом месте ячейки, вам понадобится более сложная формула.

Интересные статьи...