Skip to content
В этом руководстве объясняется, как использовать функцию СЧЕТЕСЛИМН с несколькими критериями в 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;»>»&СЕГОДНЯ())
Вот такими способами можно сосчитать ячейки, удовлетворяющие различным условиям.
Я надеюсь, что вы найдете эти примеры и советы полезными. В любом случае, я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге ещё не раз.
Также рекомендуем:
ЕСЛИ (функция ЕСЛИ)
Функция ЕСЛИ — одна из самых популярных функций в Excel. Она позволяет выполнять логические сравнения значений и ожидаемых результатов.
Поэтому у функции ЕСЛИ возможны два результата. Первый результат возвращается в случае, если сравнение истинно, второй — если сравнение ложно.
Например, функция =ЕСЛИ(C2=»Да»;1;2) означает следующее: ЕСЛИ(С2=»Да», то вернуть 1, в противном случае вернуть 2).
Функция ЕСЛИ, одна из логических функций, служит для возвращения разных значений в зависимости от того, соблюдается ли условие.
ЕСЛИ(лог_выражение; значение_если_истина; [значение_если_ложь])
Например:
-
=ЕСЛИ(A2>B2;»Превышение бюджета»;»ОК»)
-
=ЕСЛИ(A2=B2;B4-A4;»»)
Имя аргумента |
Описание |
---|---|
лог_выражение (обязательно) |
Условие, которое нужно проверить. |
значение_если_истина (обязательно) |
Значение, которое должно возвращаться, если лог_выражение имеет значение ИСТИНА. |
значение_если_ложь (необязательно) |
Значение, которое должно возвращаться, если лог_выражение имеет значение ЛОЖЬ. |
Простые примеры функции ЕСЛИ
-
=ЕСЛИ(C2=»Да»;1;2)
В примере выше ячейка D2 содержит формулу: ЕСЛИ(C2 = Да, то вернуть 1, в противном случае вернуть 2)
-
=ЕСЛИ(C2=1;»Да»;»Нет»)
В этом примере ячейка D2 содержит формулу: ЕСЛИ(C2 = 1, то вернуть текст «Да», в противном случае вернуть текст «Нет»). Как видите, функцию ЕСЛИ можно использовать для сравнения и текста, и значений. А еще с ее помощью можно оценивать ошибки. Вы можете не только проверять, равно ли одно значение другому, возвращая один результат, но и использовать математические операторы и выполнять дополнительные вычисления в зависимости от условий. Для выполнения нескольких сравнений можно использовать несколько вложенных функций ЕСЛИ.
-
=ЕСЛИ(C2>B2;»Превышение бюджета»;»В пределах бюджета»)
В примере выше функция ЕСЛИ в ячейке D2 означает: ЕСЛИ(C2 больше B2, то вернуть текст «Превышение бюджета», в противном случае вернуть текст «В пределах бюджета»)
-
=ЕСЛИ(C2>B2;C2-B2;0)
На рисунке выше мы возвращаем не текст, а результат математического вычисления. Формула в ячейке E2 означает: ЕСЛИ(значение «Фактические» больше значения «Плановые», то вычесть сумму «Плановые» из суммы «Фактические», в противном случае ничего не возвращать).
-
=ЕСЛИ(E7=»Да»;F5*0,0825;0)
В этом примере формула в ячейке F7 означает: ЕСЛИ(E7 = «Да», то вычислить общую сумму в ячейке F5 и умножить на 8,25 %, в противном случае налога с продажи нет, поэтому вернуть 0)
Примечание: Если вы используете текст в формулах, заключайте его в кавычки (пример: «Текст»). Единственное исключение — слова ИСТИНА и ЛОЖЬ, которые Excel распознает автоматически.
Распространенные неполадки
Проблема |
Возможная причина |
---|---|
0 (ноль) в ячейке |
Не указан аргумент значение_если_истина или значение_если_ложь. Чтобы возвращать правильное значение, добавьте текст двух аргументов или значение ИСТИНА/ЛОЖЬ. |
#ИМЯ? в ячейке |
Как правило, это указывает на ошибку в формуле. |
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
См. также
Функция ЕСЛИ — вложенные формулы и типовые ошибки
Функция УСЛОВИЯ
Использование ЕСЛИ с функциями И, ИЛИ и НЕ
СЧЁТЕСЛИ
Рекомендации, позволяющие избежать появления неработающих формул
Общие сведения о формулах в Excel
Нужна дополнительная помощь?
Простые логические функции такие как ЕСЛИ обычно предназначены для работы с одним столбцом или одной ячейкой. Excel также предлагает несколько других логических функций служащих для агрегирования данных. Например, функция СУММЕСЛИ для выборочного суммирования диапазона значений по условию.
Примеры формулы для суммы диапазонов с условием отбора в Excel
Ниже на рисунке представлен в таблице список счетов вместе с состоянием по каждому счету в виде положительных или отрицательных чисел. Допустим нам необходимо посчитать сумму всех отрицательных чисел для расчета суммарного расхода по движению финансовых средств. Этот результат будет позже сравниваться вместе с сумой положительных чисел с целью верификации и вывода балансового сальдо. Узнаем одинаковые ли суммы доходов и расходов – сойдется ли у нас дебит с кредитом. Для суммирования числовых значений по условию в Excel применяется логическая функция =СУММЕСЛИ():
Функция СУММЕСЛИ анализирует каждое значение ячейки в диапазоне B2:B12 и проверяет соответствует ли оно заданному условию (указанному во втором аргументе функции). Если значение меньше чем 0, тогда условие выполнено и данное число учитывается в общей итоговой сумме. Числовые значения больше или равно нулю игнорируются функцией. Проигнорированы также текстовые значения и пустые ячейки.
В приведенном примере сначала проверяется значения ячейки B2 и так как оно больше чем 0 – будет проигнорировано. Далее проверяется ячейка B3. В ней числовое значение меньше нуля, значит условие выполнено, поэтому оно добавляется к общей сумме. Данный процесс повторяется для каждой ячейки. В результате его выполнения суммированы значения ячеек B3, B6, B7, B8 и B10, а остальные ячейки не учитываются в итоговой сумме.
Обратите внимание что ниже результата суммирования отрицательных чисел находится формула суммирования положительных чисел. Единственное отличие между ними — это обратный оператор сравнения во втором аргументе где указывается условие для суммирования – вместо строки «<0» (меньше чем ноль) используется строка «>0» (больше чем ноль). Теперь мы можем убедиться в том, что дебет с кредитом сходится балансовое сальдо будет равно нулю если сложить арифметически в ячейке B16 формулой =B15+B14.
Пример логического выражения в формуле для суммы с условием
Другой пример, когда нам нужно отдельно суммировать цены на группы товаров стоимости до 1000 и отдельно со стоимостью больше 1000. В таком случае одного оператора сравнения нам недостаточно (<1000) придется использовать знак «меньше или равно» (<=1000) иначе цены со значением ровно 1000 не будут включены в расчеты. Более того в таком случае мы уже не можем использовать в другой формуле «больше или равно» (>=1000) иначе мы просуммируем сумму ровно в 1000 – 2 раза, что приведет к ошибочным итоговым результатам:
Это очень распространенная ошибка пользователей Excel при работе с логическими функциями!
Внимание! В первом примере нулевые значения нам необязательно было учитывать, так как на балансовое сальдо это никак не повлияло бы, но во втором случаи нужно составлять критерий условия суммирования иначе, чтобы не допустить ошибочных просчетов.
Второй аргумент функции СУММЕСЛИ, то есть условие, которое должно быть выполнено, записывается между двойными кавычками. В данном примере используется символ сравнения – «меньше» (<). По синтаксису функции необходимо представлять такие записи как строка, то есть в двойных кавычках. Иначе Excel выдаст предупреждение об ошибке в формуле.
Синтаксис формулы суммирования по условию в Excel
В синтаксисе функции СУММЕСЛИ присутствует необязательный для заполнения третий аргумент – диапазон суммирования. В предыдущем примере условие проверялось по тому же диапазону, который нужно было суммировать. Благодаря третьему аргументу появляется возможность проверять условия по одному диапазону, а суммировать другой.
Ниже на рисунке представлена таблица отчета продаж по клиентам за месяц. Напротив, каждого клиента указана сумма, на которую совершил покупки клиент на протяжении месяца. Некоторые клиенты за месяц совершили по несколько покупок, поэтому их наименование дублируется в списке. Необходимо узнать на какую общую сумму купил товара «Клиент3» в данном месяце. Здесь весьма уместно использовать формулу с заполнением третьего аргумента функции СУММЕСЛИ:
Как видно на всех выше приведенных примерах во втором аргументе указывается строка текста с условием, а не логическое выражение как в функции ЕСЛИ. На практике использования функции СУММЕСЛИ этот второй логический аргумент с условием может содержать:
- сроки с текстовым значением;
- числовые значения;
- логические выражения;
- формулы с функциями;
- ссылки на ячейки.
Далее рассмотрим больше примеров составления условий для второго логического аргумента функции СУММЕСЛИ более детально.
Создание критериев условий для функции СУММЕСЛИ
Второй аргумент функции называется «Критерий». Данный логический аргумент используется и в других подобных логических функциях: СУММЕСЛИМН, СЧЁТЕСЛИ, СЧЁТЕСЛИМН, СРЗНАЧЕСЛИ и СРЗНАЧЕСЛИМН. В каждом случаи аргумент заполняется согласно одних и тех же правил составления логических условий. Другими словами, для всех этих функций второй аргумент с критерием условий является логическим выражением возвращающим результат ИСТИНА или ЛОЖЬ. Это значит, что выражение должно содержать оператор сравнения, например: больше (>) меньше (<) равно (=) неравно (<>), больше или равно (>=), меньше или равно (<=). За исключением можно не указывать оператор равно (=), если должно быть проверено точное совпадение значений.
Создание сложных критериев условий может быть запутанным. Однако если придерживаться нескольких простых правил описанных в ниже приведенной таблице, не будет возникать никаких проблем.
Таблица правил составления критериев условий:
Чтобы создать условие | Примените правило | Пример |
Значение равно заданному числу или ячейке с данным адресом. | Не используйте знак равенства и двойных кавычек. | =СУММЕСЛИ(B1:B10;3) |
Значение равно текстовой строке. | Не используйте знак равенства, но используйте двойные кавычки по краям. | =СУММЕСЛИ(B1:B10;»Клиент5″) |
Значение отличается от заданного числа. | Поместите оператор и число в двойные кавычки. | =СУММЕСЛИ(B1:B10;»>=50″) |
Значение отличается от текстовой строки. | Поместите оператор и число в двойные кавычки. | =СУММЕСЛИ(B1:B10;»<>выплата») |
Значение отличается от ячейки по указанному адресу или от результата вычисления формулы. | Поместите оператор сравнения в двойные кавычки и соедините его символом амперсант (&) вместе со ссылкой на ячейку или с формулой. | =СУММЕСЛИ(A1:A10;»<«&C1) или =СУММЕСЛИ(B1:B10;»<>»&СЕГОДНЯ()) |
Значение содержит фрагмент строки | Используйте операторы многозначных символов и поместите их в двойные кавычки | =СУММЕСЛИ(A1:A10;»*кг*»;B1:B10) |
Во втором аргументе критериев условий можно использовать разные функции и формулы. Ниже на рисунке изображен список дат и присвоенных им значений. Важно отметить что сегодня на момент написания статьи дата – «03.11.2018». Чтобы суммировать числовые значения только по сегодняшней дате используйте формулу:
Чтобы суммировать только значения от сегодняшнего дня включительно и до конца периода времени воспользуйтесь оператором «больше или равно» (>=) вместе с соответственной функцией =СЕГОДНЯ(). Формула c операторам (>=):
Суммирование по неточному совпадению в условии критерия отбора
Во втором логическом аргументе критериев условий функции СУММЕСЛИ можно применять многозначные символы – (?)и(*) для составления относительных неточных запросов. Знак вопроса (?) – следует читать как любой символ, а звездочка (*) – это строка из любого количества любых символов или пустая строка. Например, нам необходимо просуммировать только защитные краски-лаки с кодом 3 английские буквы в начале наименования:
Суммируются все значения ячеек в диапазоне B2:B16 в соответствии со значениями в ячейках диапазона A2:A16, в которых после третьего символа фрагмент строки «-защита».
Таким образом удалось суммировать только определенную группу товаров в общем списке отчета по складу. Данный фрагмент наименования товара должен встречаться в определенном месте – 3 символа от начала строки. Нет необходимости использовать сложные формулы с функцией =ЛЕВСИМВ() и т.д. Достаточно лишь воспользоваться операторами многозначных символов чтобы сформулировать простой и лаконичный запрос к базе данных с минимальными нагрузками на системные ресурсы.
Выборочные вычисления по одному или нескольким критериям
Постановка задачи
Имеем таблицу по продажам, например, следующего вида:
Задача: просуммировать все заказы, которые менеджер Григорьев реализовал для магазина «Копейка».
Способ 1. Функция СУММЕСЛИ, когда одно условие
Если бы в нашей задаче было только одно условие (все заказы Петрова или все заказы в «Копейку», например), то задача решалась бы достаточно легко при помощи встроенной функции Excel СУММЕСЛИ (SUMIF) из категории Математические (Math&Trig). Выделяем пустую ячейку для результата, жмем кнопку fx в строке формул, находим функцию СУММЕСЛИ в списке:
Жмем ОК и вводим ее аргументы:
- Диапазон — это те ячейки, которые мы проверяем на выполнение Критерия. В нашем случае — это диапазон с фамилиями менеджеров продаж.
- Критерий — это то, что мы ищем в предыдущем указанном диапазоне. Разрешается использовать символы * (звездочка) и ? (вопросительный знак) как маски или символы подстановки. Звездочка подменяет собой любое количество любых символов, вопросительный знак — один любой символ. Так, например, чтобы найти все продажи у менеджеров с фамилией из пяти букв, можно использовать критерий ?????. А чтобы найти все продажи менеджеров, у которых фамилия начинается на букву «П», а заканчивается на «В» — критерий П*В. Строчные и прописные буквы не различаются.
- Диапазон_суммирования — это те ячейки, значения которых мы хотим сложить, т.е. нашем случае — стоимости заказов.
Способ 2. Функция СУММЕСЛИМН, когда условий много
Если условий больше одного (например, нужно найти сумму всех заказов Григорьева для «Копейки»), то функция СУММЕСЛИ (SUMIF) не поможет, т.к. не умеет проверять больше одного критерия. Поэтому начиная с версии Excel 2007 в набор функций была добавлена функция СУММЕСЛИМН (SUMIFS) — в ней количество условий проверки увеличено аж до 127! Функция находится в той же категории Математические и работает похожим образом, но имеет больше аргументов:
При помощи полосы прокрутки в правой части окна можно задать и третью пару (Диапазон_условия3—Условие3), и четвертую, и т.д. — при необходимости.
Если же у вас пока еще старая версия Excel 2003, но задачу с несколькими условиями решить нужно, то придется извращаться — см. следующие способы.
Способ 3. Столбец-индикатор
Добавим к нашей таблице еще один столбец, который будет служить своеобразным индикатором: если заказ был в «Копейку» и от Григорьева, то в ячейке этого столбца будет значение 1, иначе — 0. Формула, которую надо ввести в этот столбец очень простая:
=(A2=»Копейка»)*(B2=»Григорьев»)
Логические равенства в скобках дают значения ИСТИНА или ЛОЖЬ, что для Excel равносильно 1 и 0. Таким образом, поскольку мы перемножаем эти выражения, единица в конечном счете получится только если оба условия выполняются. Теперь стоимости продаж осталось умножить на значения получившегося столбца и просуммировать отобранное в зеленой ячейке:
Способ 4. Волшебная формула массива
Если вы раньше не сталкивались с такой замечательной возможностью Excel как формулы массива, то советую почитать предварительно про них много хорошего здесь. Ну, а в нашем случае задача решается одной формулой:
=СУММ((A2:A26=»Копейка»)*(B2:B26=»Григорьев»)*D2:D26)
После ввода этой формулы необходимо нажать не Enter, как обычно, а Ctrl + Shift + Enter — тогда Excel воспримет ее как формулу массива и сам добавит фигурные скобки. Вводить скобки с клавиатуры не надо. Легко сообразить, что этот способ (как и предыдущий) легко масштабируется на три, четыре и т.д. условий без каких-либо ограничений.
Способ 4. Функция баз данных БДСУММ
В категории Базы данных (Database) можно найти функцию БДСУММ (DSUM), которая тоже способна решить нашу задачу. Нюанс состоит в том, что для работы этой функции необходимо создать на листе специальный диапазон критериев — ячейки, содержащие условия отбора — и указать затем этот диапазон функции как аргумент:
=БДСУММ(A1:D26;D1;F1:G2)
Функция СЧЁТЕСЛИ в Excel с разными условиями: мы объясняем это на примерах.
В этом руководстве объясняется, как использовать функцию СЧЁТЕСЛИ с несколькими критериями в Excel на основе логики И и ИЛИ. Вы найдете примеры для разных типов данных: чисел, дат, текста, подстановочных знаков. Цель этого поста — продемонстрировать разные подходы и помочь выбрать наиболее эффективное решение для каждого конкретного бизнеса.
Начиная с выпуска Excel 2007 года, Microsoft добавила «старших сестер» Excel к функциям выборочного подсчета СУММЕСЛИ, СЧЁТЕСЛИ и СРЕДНЕЛИ — функциям СУММЕСЛИ, СЧЁТЕСЛИ и СРЕДНЕЛИ. На английском языке эти функции выглядят как СУММЕСЛИМН, СЧЁТЕСЛИМН и СРЕДНИМЕСЛИМН, то есть в конце у них есть буква -S, которая в английском означает множественное число. В русской версии эту роль играет -MN.
Их часто путают, потому что они очень похожи друг на друга и рассчитаны на основе определенных критериев.
Разница в том, что функция СЧЁТЕСЛИ предназначена для подсчета ячеек с одним и тем же условием в одном диапазоне, а СЧЁТЕСЛИ может оценивать разные критерии в том же или разных диапазонах.
Как работает функция СЧЕТЕСЛИМН?
Вычисляет количество совпадений в нескольких диапазонах на основе одного или нескольких критериев.
Синтаксис функции следующий:
СЧЁТЕСЛИ (интервал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, потому что только Plum имеет значение «0» в обоих столбцах.
Использование упрощенной версии с ограничением выбора, например = COUNTIFS (B2: D11; 0), даст другой результат: общее количество ячеек в B2: D11, содержащих ноль (в этом примере это 5).
Если достаточно выполнения хотя бы одного условия (логика ИЛИ).
Как вы видели в приведенных выше примерах, подсчет ячеек, отвечающих всем вышеперечисленным критериям, прост, потому что функция СЧЁТЕСЛИМН предназначена для выполнения этой работы.
Но что, если вы хотите подсчитать значения, для которых хотя бы одно из указанных условий истинно, то есть использовать логику ИЛИ? В принципе, это можно сделать двумя способами: 1) путем добавления нескольких формул СЧЁТЕСЛИ или 2) с помощью комбинации СУММ + СЧЁТЕСЛИ с константой массива.
Способ 1. Две или более формулы СЧЕТЕСЛИ или СЧЕТЕСЛИМН.
Считаем заказы со статусом «Отменено» и «Ожидание». Для этого вы можете просто написать 2 обычные формулы СЧЁТЕСЛИ и затем сложить результаты:
= СЧЁТЕСЛИ (E2: E11, «Отменено») + СЧЁТЕСЛИ (E2: E11, «Ожидание»)
Если вам нужно оценить более одного параметра выбора, используйте COUNTPIIF.
Чтобы узнать количество «отмененных» и «ожидающих» заказов на клубнику, используйте эту опцию:
= СЧЁТЕСЛИ (A2: A11, «клубника»; E2: E11, «Отменено») + СЧЁТЕСЛИ (LA2: A11, «клубника»; E2: E11, «Ожидание»)
Способ 2. СУММ+СЧЁТЕСЛИМН с константой массива.
В ситуациях, когда вам нужно оценить множество критериев, описанный выше подход — не лучший вариант, потому что ваша формула станет слишком громоздкой. Чтобы выполнить те же вычисления в более компактной форме, перечислите все критерии в константе массива и предоставьте этот массив в качестве аргумента функции COUNTPIIF.
Введите СЧЁТЕСЛИМН в функцию СУММ, например:
СУММ (СЧЁТЕСЛИМН (диапазон; {«условие1»; «условие2»; «условие3»;…}))
В нашей таблице с примерами подсчета заказов со статусом «Отменено» или «В ожидании» расчет будет выглядеть так:
= СУММ (СЧЁТЕСЛИМН (E2: E11; {«Отменено», «В ожидании»}))
Массив означает, что мы сначала ищем все отмененные ордера, затем отложенные ордера. В результате получается двузначная матрица итогов. А затем функция СУММ складывает их.
Точно так же вы можете использовать две или более пары диапазон / условие. Чтобы рассчитать количество отмененных или отложенных заказов на клубнику, используйте это выражение:
= СУММ (СЧЁТЕСЛИМН (A2: A11; «Клубника»; E2: E11; {«Отменено», «Ожидает рассмотрения»}))
Как сосчитать числа в интервале.
СЧЁТЕСЛИМН вычисляет 2 типа итогов: 1) на основе множества ограничений (объясненных в примерах выше) и 2) когда числа находятся между двумя указанными значениями. Последнее можно сделать двумя способами: с помощью функции СЧЁТЕСЛИ или вычитанием одного СЧЁТЕСЛИ из другого.
1. СЧЕТЕСЛИМН для подсчета ячеек между двумя числами
Чтобы узнать, сколько поступило заказов с количеством товаров от 10 до 20, сделаем так:
= СЧЁТЕСЛИ (D2: D11; «> 10»; D2: D11; «
2. СЧЕТЕСЛИ для подсчета в интервале
Тот же результат можно получить, вычитая одну формулу СЧЁТЕСЛИ из другой. Сначала мы вычисляем, сколько чисел больше значения нижней границы диапазона (10 в этом примере). Второй возвращает количество заказов, превышающих верхний предел (в данном случае 20). Разница между ними — это результат, который вы ищете.
= СЧЁТЕСЛИ (G2: D11; «> 10») — СЧЁТЕСЛИ (G2: D11; «> 20»)
Это выражение вернет ту же сумму, что и на изображении выше.
Как использовать ссылки в формулах СЧЕТЕСЛИМН.
При использовании логических операторов, таких как «>», « =» вместе со ссылками на ячейки, обязательно заключите оператор в «двойные кавычки» и добавьте амперсанд (&) перед ссылкой. Другими словами, требование выбора должно быть представлено в виде текста, заключенного в кавычки.
рис6
В этом примере мы будем считать заказы с количеством более 30 единиц, несмотря на то, что на складе было менее 50 единиц товара.
= СЧЁТЕСЛИ (B2: B11; « 30″)
или
= СЧЁТЕСЛИ (B2: B11; «» & G2)
если вы отметили значения ограничений в определенных ячейках, например в G1 и G2, и обратитесь к ним.
Как использовать СЧЕТЕСЛИМН со знаками подстановки.
Традиционно можно использовать следующие подстановочные знаки:
- Знак вопроса (?) — соответствует любому одиночному символу. Используйте его для подсчета ячеек, начинающихся и / или заканчивающихся четко определенными символами.
- Звездочка (*) — соответствует любой последовательности символов (включая ноль). Позволяет заменить часть контента.
Примечание. Если вы хотите подсчитывать ячейки, в которых есть вопросительный знак или звездочка, как буквы, поставьте тильду (~) перед звездочкой или вопросительным знаком в записи параметра поиска.
Теперь посмотрим, как можно использовать подстановочный знак.
Допустим, у нас есть список заказов, к которым менеджеры прикреплены лично. Вы хотите знать, сколько заказов уже было кому-то назначено и при этом для них установлен крайний срок. Другими словами, в столбцах B и E таблицы есть значения.
Нам нужно узнать количество заказов, по которым заполнены столбцы B и E:
= СЧЁТЕСЛИ (B2: B21; «*»; E2: E21;»»&»»)
Обратите внимание, что в первом критерии мы используем подстановочный знак *, поскольку мы рассматриваем текстовые значения (фамилии). По второму критерию мы разбираем даты, потом пишем по-другому: «» & «» (значит — не равно пустому значению).
Несколько условий в виде даты.
Правила работы с датами очень похожи на рассмотренные выше вычисления с числами.
1.Подсчет дат в определенном интервале.
Вы также можете использовать СЧЁТЕСЛИ с двумя критериями или комбинацию двух функций СЧЁТЕСЛИ для подсчета дат, попадающих в определенный временной диапазон.
Следующие выражения подсчитывают в областях от D2 до D21 количество дат, которые попадают в период с 1 по 7 февраля 2020 года включительно:
= СЧЁТЕСЛИ (G2: G21; «> = 01.02.2020»; G2: G21; «
или
= СЧЁТЕСЛИ (G2: D21; «> =» & H3; D2: D21; «
2. Подсчет на основе нескольких дат.
Точно так же вы можете использовать СЧЁТЕСЛИМН, чтобы подсчитать количество дат в разных столбцах, которые соответствуют двум или более требованиям. Например, посчитаем, сколько заказов было принято до 1 февраля и доставлено после 5 февраля:
Как обычно, будем писать двумя способами: со ссылками и без них:
= СЧЁТЕСЛИ (D2: D21; «> =» & H3; E2: E21; «> =» & H4)
а также
= СЧЁТЕСЛИ (G2: D21; «> = 01.02.2020»; E2: E21; «> = 05.02.2020»)
3. Подсчет дат с различными критериями на основе текущей даты
вы можете использовать функцию СЕГОДНЯ () для подсчета дат относительно сегодняшнего дня.
Эта формула с двумя областями и двумя критериями покажет вам, сколько товаров уже было куплено, но еще не доставлено.
= СЧЁТЕСЛИ (G2: D21; «» & СЕГОДНЯ())
Он допускает множество возможных вариаций. В частности, вы можете настроить его так, чтобы он подсчитывал, сколько заказов было размещено более недели назад и еще не доставлено:
= СЧЁТЕСЛИ (G2: D21; «» & СЕГОДНЯ())
Таким образом, вы можете подсчитать клетки, соответствующие различным условиям.