Подсчёт ячеек по заданным критериям — одна из самых востребованных операций в Microsoft Excel и Google Таблицах. Без этого навыка невозможно анализировать данные, строить отчёты или автоматизировать рутинные задачи. Например, вам может понадобиться узнать, сколько клиентов сделали заказ на сумму больше 10 000 рублей, сколько сотрудников имеют стаж более 5 лет, или сколько товаров на складе осталось меньше минимального запаса.
Многие пользователи ошибочно думают, что для этого нужны сложные макросы или глубокие знания программирования. На самом деле, в 90% случаев достаточно стандартных функций Excel: СЧЁТЕСЛИ, СЧЁТЕСЛИМН, комбинаций с ЕСЛИ или даже простого фильтра. В этой статье мы разберём все способы — от базовых до продвинутых, — чтобы вы могли выбрать оптимальный вариант для своей задачи.
Особое внимание уделим типичным ошибкам, которые допускают даже опытные пользователи. Например, почему формула СЧЁТЕСЛИ иногда возвращает неверное значение при работе с датами или как правильно составить критерий для текстового поиска с учётом регистра. Также вы узнаете, как ускорить вычисления в больших таблицах и избежать «подвисаний» Excel при работе с тысячами строк.
Если вы никогда не работали с условным подсчётом, начните с первых двух разделов — там объяснено всё максимально просто. Для тех, кто уже знаком с основами, будут полезны разделы про массивы, динамические диапазоны и комбинации функций для сложных условий.
1. Базовый способ: функция СЧЁТЕСЛИ для одного условия
Функция СЧЁТЕСЛИ (COUNTIF в английской версии) — самый простой инструмент для подсчёта ячеек, соответствующих одному критерию. Она работает с числами, текстом, датами и даже логическими значениями. Синтаксис функции:
=СЧЁТЕСЛИ(диапазон; критерий)
Где:
- 📌 диапазон — группа ячеек, в которых нужно искать (например,
A2:A100) - 🔍 критерий — условие, по которому отбираются ячейки (может быть числом, текстом, выражением)
Примеры использования:
- 📊 Подсчёт ячеек со значением "Да":
=СЧЁТЕСЛИ(B2:B50; "Да") - 💰 Подсчёт заказов на сумму больше 5000:
=СЧЁТЕСЛИ(C2:C100; ">5000") - 📅 Подсчёт дат после 01.01.2026:
=СЧЁТЕСЛИ(D2:D200; ">01.01.2026")
Обратите внимание: критерии с текстом (например, "Да") нужно брать в кавычки, а числа и даты — нет. Если вы используете знак сравнения (>, <, =), его тоже заключают в кавычки вместе с числом: ">5000", а не >5000.
⚠️ Внимание: ФункцияСЧЁТЕСЛИне различает регистр букв. То есть критерии "Да", "дА" и "ДА" для неё эквивалентны. Если ваша задача требует учёта регистра, используйте комбинацию функцийСУММПРОИЗВиТОЧНО(разберём ниже).
Рассмотрим практический пример. Допустим, у вас есть таблица продаж с колонками "Менеджер" и "Сумма заказа". Чтобы узнать, сколько сделок закрыл менеджер Иванов на сумму более 20 000 рублей, используйте две вложенные функции:
=СЧЁТЕСЛИМН(B2:B100; "Иванов"; C2:C100; ">20000")
Но если вам нужно посчитать только количество сделок Иванова (без учёта суммы), хватит и простой СЧЁТЕСЛИ:
=СЧЁТЕСЛИ(B2:B100; "Иванов")
2. СЧЁТЕСЛИМН: подсчёт по нескольким условиям
Когда нужно учитывать два или более критериев одновременно, на помощь приходит функция СЧЁТЕСЛИМН (COUNTIFS). Она работает аналогично СЧЁТЕСЛИ, но позволяет задавать пары "диапазон-критерий" для нескольких столбцов.
Синтаксис:
=СЧЁТЕСЛИМН(диапазон1; критерий1; [диапазон2; критерий2]; ...)
Ключевые особенности:
- 🔄 Все диапазоны должны быть одинакового размера (например,
A2:A100иB2:B100) - 📌 Критерий применяется к соответствующему диапазону (первый критерий — к первому диапазону, второй — ко второму и т.д.)
- 🔍 Функция возвращает количество строк, где все условия выполнены одновременно
Пример: подсчитаем количество заказов от клиентов из Москвы (B2:B500) на сумму от 15 000 до 30 000 рублей (D2:D500):
=СЧЁТЕСЛИМН(B2:B500; "Москва"; D2:D500; ">=15000"; D2:D500; "<=30000")
Обратите внимание, что для диапазона сумм мы указали два критерия: ">=15000" и "<=30000". Это допустимо — функция позволяет использовать несколько условий для одного диапазона.
⚠️ Внимание: Если вы используетеСЧЁТЕСЛИМНс датами, убедитесь, что ячейки отформатированы как даты, а не как текст. Иначе функция может вернуть некорректный результат. Чтобы проверить формат, выделите ячейку и посмотрите на панель форматирования — там должно быть указано "Дата" (дд.мм.гггг).
Для наглядности сравним СЧЁТЕСЛИ и СЧЁТЕСЛИМН в таблице:
| Задача | Функция СЧЁТЕСЛИ | Функция СЧЁТЕСЛИМН |
|---|---|---|
| Подсчёт ячеек со значением "Да" в столбце A | =СЧЁТЕСЛИ(A2:A100; "Да") |
=СЧЁТЕСЛИМН(A2:A100; "Да") |
| Подсчёт ячеек >100 в столбце B | =СЧЁТЕСЛИ(B2:B100; ">100") |
=СЧЁТЕСЛИМН(B2:B100; ">100") |
| Подсчёт строк, где в A "Да", а в B >100 | Невозможно | =СЧЁТЕСЛИМН(A2:A100; "Да"; B2:B100; ">100") |
| Подсчёт дат между 01.01.2026 и 31.01.2026 в столбце C | Невозможно | =СЧЁТЕСЛИМН(C2:C100; ">=01.01.2026"; C2:C100; "<=31.01.2026") |
Как видно из таблицы, СЧЁТЕСЛИМН универсальнее — она может заменить СЧЁТЕСЛИ и решает задачи, недоступные для неё. Однако для простых условий (одно правило) лучше использовать СЧЁТЕСЛИ — она работает немного быстрее на больших массивах данных.
3. Подсчёт с частичным совпадением: подстановочные знаки
Часто бывает нужно посчитать ячейки, где текст содержит определённое слово или начинается/заканчивается на определённые символы. Для этого в критериях СЧЁТЕСЛИ и СЧЁТЕСЛИМН используют подстановочные знаки:
- 🔺
*(звёздочка) — заменяет любое количество символов (включая ноль) - 🔻
?(вопросительный знак) — заменяет ровно один символ
Примеры:
- 📌 Подсчёт ячеек, начинающихся на "А":
=СЧЁТЕСЛИ(A2:A100; "А*") - 📌 Подсчёт ячеек, содержащих "ов" (например, "Иванов", "Петров"):
=СЧЁТЕСЛИ(A2:A100; "ов") - 📌 Подсчёт ячеек с ровно 5 символами:
=СЧЁТЕСЛИ(A2:A100; "?????") - 📌 Подсчёт артикулов, заканчивающихся на "-01":
=СЧЁТЕСЛИ(B2:B500; "*-01")
Важно: если вы ищете сам символ * или ? (например, в артикулах товаров), экранируйте его тильдой ~:
=СЧЁТЕСЛИ(A2:A100; "~*") // ищет ячейки со звёздочкой
Подстановочные знаки работают и с числами, если они хранятся как текст. Например, чтобы посчитать "номера телефонов", начинающиеся на +7, используйте:
=СЧЁТЕСЛИ(C2:C200; "+7*")
⚠️ Внимание: Подстановочные знаки не работают с логическими значениями (ИСТИНА/ЛОЖЬ) и ошибками (#Н/Д,#ЗНАЧ!). Если в диапазоне есть такие ячейки, они будут проигнорированы.
Рассмотрим практический кейс. Допустим, у вас есть список email-адресов клиентов (D2:D500), и вам нужно узнать, сколько из них зарегистрированы на Mail.ru. Формула будет такой:
=СЧЁТЕСЛИ(D2:D500; "*@mail.ru")
А если нужно посчитать адреса, заканчивающиеся на .com или .ru, используйте СЧЁТЕСЛИМН с двумя критериями:
=СЧЁТЕСЛИМН(D2:D500; "@.com") + СЧЁТЕСЛИМН(D2:D500; "@.ru")
4. Продвинутые техники: массивы и комбинации функций
Когда стандартных функций недостаточно, на помощь приходят массивные формулы и комбинации с ЕСЛИ, СУММПРОИЗВ, ДЛСТР и другими. Эти методы требуют больше усилий для освоения, но открывают почти безграничные возможности.
Рассмотрим три самых полезных приёма:
4.1. Подсчёт с учётом регистра (точного совпадения)
Как мы упоминали ранее, СЧЁТЕСЛИ игнорирует регистр. Если вам нужно посчитать ячейки с точным совпадением (например, "Да" и "дА" должны считаться разными значениями), используйте комбинацию СУММПРОИЗВ и ТОЧНО:
=СУММПРОИЗВ(--(ТОЧНО(A2:A100; "Да")))
Здесь:
ТОЧНО(A2:A100; "Да")— сравнивает каждую ячейку с "Да" с учётом регистра и возвращает массивИСТИНА/ЛОЖЬ--— преобразуетИСТИНА/ЛОЖЬв1/0СУММПРОИЗВ— суммирует единицы, давая итоговый подсчёт
Аналогично можно посчитать ячейки, содержащие определённую подстроку с учётом регистра, используя НАЙТИ вместо ТОЧНО:
=СУММПРОИЗВ(--(НАЙТИ("ов"; A2:A100))) // ищет "ов" с учётом регистра
4.2. Подсчёт уникальных значений по условию
Допустим, вам нужно узнать, сколько уникальных клиентов сделали заказ на сумму больше 10 000 рублей. Здесь поможет комбинация СУММПРОИЗВ, ЕСЛИ и СЧЁТЕСЛИ:
=СУММПРОИЗВ(--(ЧАСТОТА(ЕСЛИ(C2:C100>10000; СТРОКА(A2:A100)-1); СТРОКА(A2:A100)-1)>0))
Эта формула работает как массивная и должна вводиться нажатием Ctrl+Shift+Enter (в новых версиях Excel — просто Enter).
Разберём по шагам:
ЕСЛИ(C2:C100>10000; СТРОКА(A2:A100)-1)— возвращает номера строк, где сумма > 10 000ЧАСТОТА— подсчитывает, сколько раз встречается каждый номер строки (уникальные значения будут с частотой 1)СУММПРОИЗВ(--(...>0))— считает количество уникальных номеров
4.3. Подсчёт по условию с использованием ДЛСТР (длина текста)
Если вам нужно посчитать ячейки, где текст имеет определённую длину (например, артикулы из 8 символов), используйте:
=СЧЁТЕСЛИМН(A2:A100; "*"; A2:A100; "<>"; ДЛСТР(A2:A100); 8)
Здесь:
A2:A100; "*"— исключаем пустые ячейкиA2:A100; "<>"— дополнительная проверка на непустоту (на случай, если в ячейке формула, возвращающая пустую строку)ДЛСТР(A2:A100); 8— длина текста ровно 8 символов
Для подсчёта ячеек с длиной текста от 5 до 10 символов используйте:
=СУММПРОИЗВ(--(ДЛСТР(A2:A100)>=5); --(ДЛСТР(A2:A100)<=10))
Формула введена как массивная (Ctrl+Shift+Enter в старых версиях Excel)
Диапазоны в формуле одинакового размера
Нет пустых ячеек в критических диапазонах
Проверены форматы данных (числа как числа, даты как даты)-->
5. Альтернативные методы: фильтры и сводные таблицы
Функции — не единственный способ посчитать ячейки по условию. В некоторых случаях удобнее использовать фильтры или сводные таблицы, особенно если вам нужно не только количество, но и детализация данных.
5.1. Подсчёт с помощью фильтра
Самый простой способ без формул:
- Выделите диапазон с данными (включая заголовки)
- Нажмите
Данные → Фильтр(илиCtrl+Shift+L) - Нажмите на стрелку фильтра в нужном столбце и выберите условие (например, "Больше чем...")
- Введите значение и нажмите
ОК - Количество отфильтрованных строк отобразится в статусной строке Excel (внизу окна)
Преимущества метода:
- 🔹 Не нужно запоминать функции
- 🔹 Видно, какие именно строки попали под условие
- 🔹 Можно применить несколько фильтров одновременно
Недостатки:
- 🔸 Результат не обновляется автоматически при изменении данных
- 🔸 Невозможно использовать результат фильтра в других формулах
5.2. Сводные таблицы для сложного анализа
Если вам нужно не только посчитать ячейки, но и сгруппировать данные по категориям, сводная таблица — идеальный инструмент. Например, вы можете узнать:
- 📊 Количество заказов по каждому менеджеру
- 📊 Распределение клиентов по городам с суммой продаж
- 📊 Динамику количества сделок по месяцам
Как создать сводную таблицу для подсчёта:
- Выделите исходные данные (включая заголовки)
- Нажмите
Вставка → Сводная таблица - Перетащите поле, по которому нужно считать (например, "Город"), в область "Строки"
- Перетащите то же поле (или другое) в область "Значения" — Excel автоматически посчитает количество записей
- При необходимости добавьте фильтры (например, по дате или сумме)
Чтобы посчитать не все строки, а только те, что соответствуют условию, используйте вычисляемое поле:
- В сводной таблице нажмите правой кнопкой на список полей
- Выберите "Формулы → Вычисляемое поле"
- Задайте имя (например, "Большие заказы") и формулу:
=ЕСЛИ(Сумма>10000; 1; 0) - Добавьте вычисляемое поле в область "Значения" и установите операцию "Сумма"
Это позволит посчитать, например, количество заказов свыше 10 000 рублей по каждому менеджеру.
Чтобы данные в сводной таблице обновились, нажмите на неё правой кнопкой и выберите "Обновить". Или используйте сочетание клавиш Как обновить сводную таблицу после изменения данных?
Alt+F5. Если сводная таблица подключена к внешнему источнику, может потребоваться обновить все данные: Данные → Обновить все.
6. Типичные ошибки и как их избежать
Даже опытные пользователи Excel иногда сталкиваются с проблемами при подсчёте ячеек по условию. Рассмотрим самые распространённые ошибки и способы их решения.
6.1. Функция возвращает 0, хотя есть подходящие ячейки
Причины и решения:
- 🔴 Несовпадение форматов: Например, вы ищете число 100, а в ячейках текст "100". Проверьте формат с помощью
Формат ячеек(Ctrl+1). - 🔴 Пробелы или невидимые символы: Используйте
СЖПРОБЕЛЫдля очистки:=СЧЁТЕСЛИ(СЖПРОБЕЛЫ(A2:A100); "Да"). - 🔴 Опечатка в критерии: Убедитесь, что регистр и символы совпадают. Например, "Да" и "да" — разные критерии для
ТОЧНО. - 🔴 Диапазоны разного размера: В
СЧЁТЕСЛИМНвсе диапазоны должны быть одинаковыми (например,A2:A100иB2:B100, а неA2:A100иB2:B99).
6.2. Ошибка #ЗНАЧ! при использовании массивов
Эта ошибка возникает, когда:
- 🔴 Диапазоны в формуле разного размера (например,
A2:A10иB2:B20) - 🔴 Формула не введена как массивная (в старых версиях Excel нужно нажимать
Ctrl+Shift+Enter) - 🔴 В диапазоне есть ошибки (#Н/Д, #ДЕЛ/0!), которые не обрабатываются
Решения:
- 🟢 Проверьте размеры диапазонов с помощью
СТРОКАилиСТОЛБЕЦ - 🟢 Используйте
ЕСЛИОШИБКАдля обработки ошибок:=СУММПРОИЗВ(--(ЕСЛИОШИБКА(A2:A100; "")="Да")) - 🟢 В новых версиях Excel массивные формулы вводятся автоматически — просто нажмите
Enter
6.3. Медленная работа на больших данных
Если ваша таблица содержит десятки тысяч строк, формулы с СЧЁТЕСЛИМН или массивами могут тормозить. Оптимизируйте их так:
- 🚀 Используйте именованные диапазоны: Задайте имя для
A2:A10000черезФормулы → Присвоить имя, затем ссылайтесь на него в формулах. - 🚀 Сужайте диапазоны: Вместо
A:A(весь столбец) указывайтеA2:A10000(только заполненные ячейки). - 🚀 Отключите автоматический пересчёт: Перейдите в
Формулы → Параметры вычислений → Вручнуюи обновляйте данные поF9. - 🚀 Замените формулы на Power Query: Для сложных отчётов используйте
Данные → Получить данные → Из таблицы/диапазона.
Если даже после оптимизации Excel "подвисает", попробуйте разделить данные на несколько листов или используйте Google Таблицы — они лучше справляются с большими массивами в браузере.
7. Примеры для реальных задач
Разберём несколько практических кейсов, с которыми часто сталкиваются пользователи.
7.1. Подсчёт просроченных задач
Допустим, у вас есть список задач с колонками "Срок" (B2:B100) и "Статус" (C2:C100). Нужно посчитать, сколько задач просрочено (срок меньше сегодняшней даты) и при этом не выполнено (статус ≠ "Выполнено").
Формула:
=СЧЁТЕСЛИМН(B2:B100; "<"&СЕГОДНЯ(); C2:C100; "<>Выполнено")
Здесь &СЕГОДНЯ() динамически подставляет текущую дату, поэтому формула будет всегда актуальной.
7.2. Подсчёт уникальных значений с условием
Вам нужно узнать, сколько уникальных товаров было продано в январе 2026 года. Данные: "Дата" (A2:A500), "Товар" (B2:B500).
Формула (массивная, вводится с Ctrl+Shift+Enter в старых версиях):
=СУММПРОИЗВ(--(ЧАСТОТА(ЕСЛИ(МЕСЯЦ(A2:A500)=1; ЕСЛИ(ГОД(A2:A500)=2026; ПОИСКПОЗ(B2:B500; B2:B500; 0))); ПОИСКПОЗ(B2:B500; B2:B500; 0))>0))
Разбор:
МЕСЯЦ(A2:A500)=1иГОД(A2:A500)=2026— фильтр по январе 2026ПОИСКПОЗ(B2:B500; B2:B500; 0)— возвращает позиции уникальных товаровЧАСТОТА— подсчитывает уникальные значения
7.3. Подсчёт ячеек с ошибками
Чтобы посчитать количество ячеек с ошибками (#Н/Д, #ДЕЛ/0! и т.д.) в диапазоне A2:A100, используйте:
=СУММПРОИЗВ(--ЕОШ(A2:A100))
Если нужно посчитать только ошибки #Н/Д:
=СУММПРОИЗВ(--(ЕТЕКСТ(A2:A100; "#Н/Д")))
7.4. Подсчёт ячеек с определённым цветом
С