В этом руководстве объясняется, как использовать функцию СЧЕТЕСЛИМН с несколькими критериями в Excel на основе логики И и ИЛИ. Вы найдете примеры для разных типов данных - числа, даты, текст, символы подстановки. Цель этого поста - продемонстрировать различные подходы и помочь вам выбрать наиболее эффективное решение для каждой конкретной задачи.
Начиная с версии Excel 2007, Microsoft добавила в Excel «старших сестер» функциям выборочного подсчета СУММЕСЛИ, СЧЁТЕСЛИ и СРЗНАЧЕСЛИ – функции СУММЕСЛИМН, СЧЁТЕСЛИМН и СРЗНАЧЕСЛИМН. В английском варианте эти функции выглядят как SUMIFS, COUNTIFS и AVERAGEIFS, т.е. имеют на конце букву -S, обозначающую в английском языке множественное число. В русской версии эту роль играет -МН.
Их часто путают, поскольку они очень похожи друг на друга и предназначены для подсчета на основе указанных критериев.
Разница в том, что СЧЕТЕСЛИ предназначен для подсчета ячеек с одним условием в одном диапазоне, тогда как СЧЕТЕСЛИМН может оценивать разные критерии в одном и том же или в разных диапазонах.
Как работает функция СЧЕТЕСЛИМН?
Она вычисляет количество соответствий в нескольких диапазонах на основе одного или множества критериев.
Синтаксис функции выглядит следующим образом:
СЧЕТЕСЛИМН(диапазон1;условие1; [диапазон2;условие2]…)
- диапазон1 (обязательный) - определяет первую область, к которой должно применяться первое условие ( условие1).
- условие1 (обязательное) - устанавливает требование к отбору в виде числа , ссылки на ячейку , текстовой строки , выражения или другой функции Excel. Определяет, какие ячейки должны учитываться.
- [диапазон2;условие2]… (необязательные) - это дополнительные области и связанные с ними критерии. Вы можете указать до 127 таких пар.
На самом деле, вам не нужно помнить этот синтаксис наизусть. Microsoft Excel отобразит аргументы функции, как только вы начнете печатать; аргумент, который вы вводите в данный момент, будет выделен жирным шрифтом.
Что нужно запомнить?
- Диапазонов поиска может быть от 1 до 127. Для каждого из них указывается свое условие. Учитываются только те случаи, которые отвечают всем предъявленным требованиям.
- Каждый дополнительный диапазон должен иметь одинаковое число строк и столбцов с первым. Иначе получите ошибку #ЗНАЧ!
- Допускаются как смежные, так и несмежные диапазоны.
- Если в аргументе указана ссылка на пустую ячейку , функция обрабатывает его как нулевое значение (0).
- В критериях можно использовать символы подстановки - звездочка (*) и знак вопроса (?). Далее мы расскажем об этом подробнее.
Считаем с учетом всех критериев (логика И).
Этот вариант является самым простым, поскольку функция СЧЕТЕСЛИМН предназначена для подсчета только тех ячеек, для которых все указанные параметры имеют значение ИСТИНА. Мы называем это логикой И, потому что логическая функция И работает таким же образом.
а. Для каждого диапазона - свой критерий.
Предположим, у вас есть список товаров, как показано на скриншоте ниже. Вы хотите узнать количество товаров, которые есть в наличии (у них значение в столбце B больше 0), но еще не были проданы (значение в столбце D равно 0).
Задача может быть выполнена таким образом:
=СЧЁТЕСЛИМН(B2:B11;G1;D2:D11;G2)
или
=СЧЁТЕСЛИМН(B2:B11;">0";D2:D11;0)
Видим, что 2 товара (крыжовник и ежевика) находятся на складе, но не продаются.
б. Одинаковый критерий для всех диапазонов.
Если вы хотите посчитать элементы с одинаковыми критериями, вам все равно нужно указывать каждую пару диапазон/условие отдельно.
Например, вот правильный подход для подсчета элементов, которые имеют 0 как в столбце B, так и в столбце D:
=СЧЁТЕСЛИМН(B2:B11;0;D2:D11;0)
Получаем 1, потому что только Слива имеет значение «0» в обоих столбцах.
Использование упрощенного варианта с одним ограничением выбора, например =СЧЁТЕСЛИМН(B2:D11;0), даст другой результат - общее количество ячеек в B2: D11, содержащих ноль (в данном примере это 5).
Если достаточно выполнения хотя бы одного условия (логика ИЛИ).
Как вы видели в приведенных выше примерах, подсчет ячеек, отвечающих всем указанным критериям, прост, поскольку функция СЧЕТЕСЛИМН как раз и предназначена для такой работы.
Но что если вы хотите подсчитать значения, для которых хотя бы одно из указанных условий имеет значение ИСТИНА , то есть использовать логику ИЛИ? В принципе, есть два способа сделать это - 1) сложив несколько формул СЧЕТЕСЛИ или 2) использовать комбинацию СУММ+СЧЕТЕСЛИМН с константой массива.
Способ 1. Две или более формулы СЧЕТЕСЛИ или СЧЕТЕСЛИМН.
Подсчитаем заказы со статусами «Отменено» и «Ожидание». Чтобы сделать это, вы можете просто написать 2 обычные формулы СЧЕТЕСЛИ и затем сложить результаты:
=СЧЁТЕСЛИ(E2:E11;"Отменено")+СЧЁТЕСЛИ(E2:E11;"Ожидание")
В случае, если нужно оценить более одного параметра отбора, используйте СЧЕТЕСЛИМН.
Чтобы получить количество «отмененных» и «отложенных» заказов для клубники, используйте такой вариант:
=СЧЁТЕСЛИМН(A2:A11;"клубника";E2:E11;"Отменено")+СЧЁТЕСЛИМН(A2:A11;"клубника";E2:E11;"Ожидание")
Способ 2. СУММ+СЧЁТЕСЛИМН с константой массива.
В ситуациях, когда вам приходится оценивать множество критериев, описанный выше подход - не лучший путь, потому что ваша формула станет слишком громоздкой. Чтобы выполнить те же вычисления в более компактной форме, перечислите все свои критерии в константе массива и укажите этот массив в качестве аргумента функции СЧЕТЕСЛИМН.
Вставьте СЧЕТЕСЛИМН в функцию СУММ, вот так:
СУММ(СЧЁТЕСЛИМН(диапазон;{"условие1";"условие2";"условие3";…}))
В нашей таблице с примерами для подсчета заказов со статусом «Отменено» или «Ожидание» расчет будет выглядеть следующим образом:
=СУММ(СЧЁТЕСЛИМН(E2:E11;{"Отменено";"Ожидание"}))
Массив означает, что в начале ищем все отмененные заказы, потом ожидающие. Получается массив из двух цифр итогов. А затем функция СУММ просто их складывает.
Аналогичным образом вы можете использовать две или более пары диапазон/условие. Чтобы вычислить количество заказов на клубнику, которые отменены или в стадии ожидания, используйте это выражение:
=СУММ(СЧЁТЕСЛИМН(A2:A11;"Клубника";E2:E11;{"Отменено";"Ожидание"}))
Как сосчитать числа в интервале.
СЧЕТЕСЛИМН рассчитывает 2 вида итогов - 1) на основе множества ограничений (объяснено в приведенных выше примерах), и 2) когда числа находятся между двумя указанными вами значениями. Последнее может быть выполнено двумя способами - с помощью функции СЧЕТЕСЛИМН или путем вычитания одного СЧЕТЕСЛИ из другого.
1. СЧЕТЕСЛИМН для подсчета ячеек между двумя числами
Чтобы узнать, сколько было получено заказов количеством товара от 10 до 20, сделаем так:
=СЧЁТЕСЛИМН(D2:D11;">10";D2:D11;"<20")
2. СЧЕТЕСЛИ для подсчета в интервале
Тот же результат может быть достигнут путем вычитания одной формулы СЧЕТЕСЛИ из другой. Сначала считаем, сколько чисел больше, чем значение нижней границы интервала (10 в этом примере). Вторая возвращает число заказов, превышающее верхнее граничное значение (в данном случае 20). Разница между ними - результат, который вы ищете.
=СЧЁТЕСЛИ(D2:D11;">10")-СЧЁТЕСЛИ(D2:D11;">20")
Это выражение будет возвращать то же количество, как показано на рисунке выше.
Как использовать ссылки в формулах СЧЕТЕСЛИМН.
При использовании логических операторов, таких как ">", "<", "<=" или ">=" вместе со ссылками на ячейки, не забудьте заключить оператор в "двойные кавычки" и добавить амперсанд (&) перед ссылкой. Иначе говоря, требование к отбору должно быть представлено в виде текста, заключенного в двойные кавычки.
рис6
В приведенном примере посчитаем заказы с количеством более 30 единиц, при том что на складе в наличии было менее 50 единиц товара.
=СЧЁТЕСЛИМН(B2:B11;"<50";D2:D11;">30")
или
=СЧЁТЕСЛИМН(B2:B11;"<"&G1;D2:D11;">"&G2)
если вы записали значения ограничений в определенные клетки, скажем, в G1 и G2, и ссылаетесь на них.
Как использовать СЧЕТЕСЛИМН со знаками подстановки.
Традиционно можно применять следующие символы подстановки:
- Вопросительный знак (?) - соответствует любому отдельному символу. Используйте его для подсчета ячеек, начинающихся и или заканчивающихся строго определенными символами.
- Звездочка (*) - соответствует любой последовательности символов (в том числе и нулевой). Позволяет заменить собой часть содержимого.
Примечание. Если вы хотите сосчитать ячейки, в которых есть знак вопроса или звездочка просто как буквы, введите тильду (~) перед звездочкой или знаком вопроса в записи параметра поиска.
Теперь давайте посмотрим, как вы можете использовать символ подстановки.
Предположим, у вас есть список заказов, за которыми персонально закреплены менеджеры. Вы хотите знать, сколько заказов уже кому-то назначено и при этом установлен срок их выполнения. Иначе говоря, имеются ли какие-то значения в столбцах B и Е таблицы.
Нам необходимо узнать количество заказов, для которых заполнены столбцы B и Е:
=СЧЁТЕСЛИМН(B2:B21;"*";E2:E21;"<>"&"")
Обратите внимание, что в первом критерии мы используем знак подстановки *, поскольку рассматриваем текстовые значения (фамилии). Во втором критерии мы анализируем даты, поэтому и записываем его иначе: "<>"&"" (означает - не равно пустому значению).
Несколько условий в виде даты.
Правила работы с датами очень похожи на рассмотренные выше вычисления с числами.
1.Подсчет дат в определенном интервале.
Для подсчета дат, попадающих в определенный временной интервал, вы также можете использовать СЧЕТЕСЛИМН с двумя критериями или же комбинацию двух функций СЧЕТЕСЛИ.
Следующие выражения подсчитывают в области с D2 по D21 количество дат, приходящихся на период с 1 по 7 февраля 2020 года включительно:
=СЧЁТЕСЛИМН(D2:D21;">=01.02.2020";D2:D21;"<=07.02.2020")
или
=СЧЁТЕСЛИМН(D2:D21;">="&H3;D2:D21;"<="&H4)
2. Подсчет на основе нескольких дат.
Таким же образом вы можете использовать СЧЕТЕСЛИМН для подсчета количества дат в разных столбцах, которые соответствуют 2 или более требованиям. Например, давайте посчитаем, сколько заказов было принято до 1 февраля и затем доставлено после 5 февраля:
Как обычно, запишем двумя способами: со ссылками и без них:
=СЧЁТЕСЛИМН(D2:D21;">="&H3;E2:E21;">="&H4)
и
=СЧЁТЕСЛИМН(D2:D21;">=01.02.2020";E2:E21;">=05.02.2020")
3. Подсчет дат с различными критериями на основе текущей даты
Вы можете использовать функцию СЕГОДНЯ() для подсчета дат по отношению к сегодняшнему дню.
Эта формула с двумя областями и двумя критериями ответит вам, сколько товаров уже куплено, но еще не доставлено.
=СЧЕТЕСЛИ(D2:D21;"<"&СЕГОДНЯ();E2:E21;">"&СЕГОДНЯ())
Она допускает множество возможных вариаций. В частности, вы можете настроить ее, чтобы подсчитать, сколько заказов было оформлено более недели назад и пока еще не доставлено:
=СЧЕТЕСЛИ(D2:D21;"<"&СЕГОДНЯ()-7;E2:E21;">"&СЕГОДНЯ())
Вот такими способами можно сосчитать ячейки, удовлетворяющие различным условиям.
Я надеюсь, что вы найдете эти примеры и советы полезными. В любом случае, я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге ещё не раз.
Спасибо автору!
Очень полезно.
Мне помогла такая конструкция формулы, доделал под себя
=ЕСЛИОШИБКА(ИНДЕКС('1'!$H$2:$H$999;ПОИСКПОЗ(0;СЧЁТЕСЛИМН($B$16:B18;'1'!$H$2:$H$999);0));"")
Исходные данные на листе "1" в диапазоне H$2:$H$999.
Проверку на уникальность ведем в этом диапазоне $B$16:B18
$B$16 - первая строка выдачи выборки (на одну выше, чем выдача результатов )
***Не могу допилить формулу, чтоб для выдачи соответствовало еще одно условие, например, ячейка A1 содержала текст "qwerty"
То есть, если ячейка A1 содержит "qwerty", тогда проводить проверку уникальности, если ячейка A1 не содержит "qwerty", то перейти с проверки следующей строки на уникальность, а значение этой ячейки не учитывать.
Божечки, Вы просто волшебник, даже я все поняла, наконееееееец-то!! Спасибо! Шлю Вам лучики добра! ...просто крик души)
Не могу найти формулу для подсчета Кол-ва Дат+ условие.
1. В примере кол-во ячеек =5, а количество дней = 3. Вопрос: Как найти кол-во именно дней =3
2. Как найти кол-во дней по условию например В (=1день) или по условию С = 2дня (не найти кол-во ячеек, а именно дни)
15.05.2020 = В
15.05.2020 = В
17.06.2020 = С
17.06.2020 = С
19.07.2020 = С
Помогите, пожалуйста
Количество уникальных значений можно подсчитать формулой =СУММПРОИЗВ(СЧЁТЕСЛИ(A1:A5;A1:A5)^(2*ЕПУСТО(A1:A5)-1))
А для второго случая - это уже подсчет уникальных ячеек по условию. Если условие запишем в ячейку E4, то можно использовать формулу массива
={СУММ(--(ЧАСТОТА(ЕСЛИ(B1:B5=E4;ПОИСКПОЗ(A1:A5;A1:A5;0));СТРОКА(A1:A5)-СТРОКА(B1)+1)>0))}