Как посчитать количество определённых значений в Excel: от простых формул до продвинутых методов

Подсчёт количества ячеек с конкретными значениями — одна из самых востребованных задач в Microsoft Excel и Google Таблицах. Без этого навыка невозможно анализировать данные: будь то учёт продаж, опросы клиентов или инвентаризация склада. Казалось бы, что может быть проще — выбрать диапазон и посчитать вручную? Но когда речь идёт о тысячах строк, автоматизация становится необходимостью.

Многие пользователи ошибочно думают, что для этой задачи нужны сложные формулы или программирование. На самом деле, даже новичок может освоить базовые методы за 10 минут. А опытные аналитики используют комбинации функций, чтобы учитывать частичные совпадения, регистр или условия из нескольких столбцов. В этой статье разберём 5 проверенных способов — от элементарных до продвинутых, — а также типичные ошибки, которые портят результаты.

Вы узнаете:

  • 🔹 Как использовать СЧЁТЕСЛИ для точного и частичного совпадения
  • 🔹 Почему фильтры иногда дают неверный результат (и как это исправить)
  • 🔹 Как подсчитать значения по нескольким критериям одновременно
  • 🔹 Секретный приём с сводными таблицами, который экономит часы работы
  • 🔹 Когда без VBA-макросов не обойтись (и как их написать без опыта)
📊 Какой способ подсчёта вы используете чаще всего?
Функция СЧЁТЕСЛИ
Фильтры
Сводные таблицы
Макросы
Другой способ

1. Функция СЧЁТЕСЛИ: базовый метод для точных совпадений

Функция СЧЁТЕСЛИ (COUNTIF в английской версии) — самый простой инструмент для подсчёта ячеек с заданным значением. Она работает с текстом, числами, датами и даже логическими значениями. Синтаксис функции:

=СЧЁТЕСЛИ(диапазон; критерий)

Диапазон — это область ячеек, в которой ведётся поиск (например, A2:A100). Критерий — это значение, которое нужно посчитать. Его можно указать прямо в формуле ("Да"), сослаться на ячейку (B1) или использовать подстановочные знаки ("текст").

Примеры использования:

  • 📌 Подсчёт ячеек со словом "Да": =СЧЁТЕСЛИ(A2:A100; "Да")
  • 📌 Подсчёт чисел больше 50: =СЧЁТЕСЛИ(B2:B200; ">50")
  • 📌 Подсчёт ячеек, содержащих фрагмент "отчёт": =СЧЁТЕСЛИ(C2:C50; "отчёт")
⚠️ Внимание: Функция СЧЁТЕСЛИ не учитывает регистр. То есть "Да" и "да" для неё — одно и то же. Если важен регистр, используйте комбинацию СУММПРОИЗВ с ТОЧНОЕ.

Распространённая ошибка — указывать критерий без кавычек для текста. Например, =СЧЁТЕСЛИ(A2:A10; Да) вернёт ошибку, потому что Excel воспримет Да как имя диапазона, а не как текст. Всегда заключайте текстовые критерии в двойные кавычки!

2. СЧЁТЕСЛИМН: подсчёт по нескольким условиям

Когда нужно учитывать два и более критериев одновременно, на помощь приходит функция СЧЁТЕСЛИМН (COUNTIFS). Она проверяет все условия и считает только те ячейки, которые им соответствуют. Синтаксис:

=СЧЁТЕСЛИМН(диапазон1; критерий1; [диапазон2; критерий2]; ...)

Допустим, у вас таблица продаж с колонками "Регион", "Продукт" и "Сумма". Чтобы посчитать, сколько раз продавали "Ноутбук" в "Москве" на сумму больше 50 000 рублей, формула будет такой:

=СЧЁТЕСЛИМН(B2:B100; "Москва"; C2:C100; "Ноутбук"; D2:D100; ">50000")

Важный нюанс: диапазоны в СЧЁТЕСЛИМН должны быть одинакового размера. Если в первом диапазоне 100 строк, а во втором — 50, функция вернёт ошибку #ЗНАЧ!.

Примеры комбинаций условий:

Задача Формула
Подсчёт продаж "Телефон" в "Санкт-Петербурге" =СЧЁТЕСЛИМН(B2:B200; "Санкт-Петербург"; C2:C200; "Телефон")
Количество заказов от 10.05.2026 до 20.05.2026 =СЧЁТЕСЛИМН(A2:A300; ">10.05.2026"; A2:A300; "<20.05.2026")
Ячейки, где "Статус" = "Выполнено" И "Приоритет" = "Высокий" =СЧЁТЕСЛИМН(D2:D150; "Выполнено"; E2:E150; "Высокий")
⚠️ Внимание: Если в критериях используете даты, обязательно заключайте их в кавычки и форматируйте как дату в ячейке. Формула =СЧЁТЕСЛИМН(A2:A100; 10.05.2026) не сработает — Excel воспримет 10.05.2026 как число 45416 (количество дней с 1900 года).

Диапазоны одинакового размера|Все текстовые критерии в кавычках|Дата в формате "ДД.ММ.ГГГГ"|Нет объединённых ячеек в диапазоне-->

3. Фильтры и условное форматирование: визуальный подсчёт

Не всегда нужно использовать формулы. Если задача разовая, можно обойтись стандартными инструментами Excel:

  1. Фильтр: Выделите диапазон → Данные → Фильтр. В выпадающем списке столбца выберите нужное значение — в статусной строке появится количество отфильтрованных ячеек.
  2. Условное форматирование: Выделите диапазон → Главная → Условное форматирование → Правила выделения ячеек. Задайте условие (например, "текст содержит") и цвет. Затем посчитайте цветные ячейки вручную или через НАЙТИ (Ctrl+F).

Преимущество фильтров — наглядность: вы сразу видите, какие именно строки попали в подсчёт. Однако у метода есть ограничения:

  • 🚫 Нельзя сохранить результат фильтрации как отдельный набор данных.
  • 🚫 При большом объёме данных фильтрация может замедлить работу файла.
  • 🚫 Нет возможности использовать сложные условия (например, "ИЛИ").

Для временного анализа фильтры подходят идеально. Но если нужно автоматизировать отчёты или работать с динамическими данными, лучше комбинировать их с формулами.

Как посчитать цветные ячейки автоматически?

Если вы использовали условное форматирование, можно посчитать цветные ячейки с помощью VBA-макроса. Например, этот код считает ячейки с заливкой красного цвета в диапазоне A1:A100:

Function CountRedCells(rng As Range) As Long

Dim cl As Range, cnt As Long

For Each cl In rng

If cl.Interior.Color = RGB(255, 0, 0) Then cnt = cnt + 1

Next cl

CountRedCells = cnt

End Function

В ячейке введите =CountRedCells(A1:A100).

4. Сводные таблицы: мощный инструмент для комплексного анализа

Сводные таблицы (Вставка → Сводная таблица) — это универсальный инструмент для подсчёта, группировки и анализа данных. Они позволяют:

  • 📊 Считать уникальные значения (например, количество клиентов).
  • 📊 Группировать данные по категориям (например, продажи по регионам).
  • 📊 Применять несколько условий одновременно (например, продажи "Ноутбуков" в "Москве" за "1 квартал").

Алгоритм создания сводной таблицы для подсчёта:

  1. Выделите исходные данные (включая заголовки).
  2. Перейдите на вкладку Вставка → Сводная таблица.
  3. В открывшемся окне укажите, куда поместить таблицу (на новый лист или в текущий).
  4. В панели Поля сводной таблицы перетащите столбец, по которому нужно посчитать значения, в область Значения. По умолчанию Excel предложит сумму — измените её на Количество.

Пример: у вас есть таблица с продажами по регионам. Чтобы посчитать, сколько раз продавали каждый продукт в каждом регионе:

  1. Перетащите поле "Регион" в Строки.
  2. Перетащите поле "Продукт" в Столбцы.
  3. Перетащите любое поле (например, "ID заказа") в Значения и выберите Количество.
⚠️ Внимание: Сводные таблицы автоматически обновляются при изменении исходных данных только если включена опция Обновить при открытии файла (правая кнопка по таблице → Параметры). В противном случае не забывайте нажимать Обновить вручную!

5. Продвинутые методы: массивы, Power Query и VBA

Для нестандартных задач базовых функций может не хватить. Рассмотрим три продвинутых подхода:

5.1. Формулы массива (без VBA)

Если нужно посчитать уникальные значения с учётом нескольких условий, поможет комбинация СУММ, ЕСЛИ и ЧАСТОТА. Например, чтобы посчитать количество уникальных клиентов, купивших "Ноутбук":

=СУММ(--(ЧАСТОТА(ЕСЛИ(C2:C100="Ноутбук"; A2:A100); A2:A100)>0))

Внимание: это формула массива — вводите её с Ctrl+Shift+Enter (в новых версиях Excel работает и без этого).

5.2. Power Query (Excel 2016+)

Инструмент Power Query (Данные → Получить данные) позволяет трансформировать и агрегировать данные без формул. Например, чтобы посчитать количество уникальных значений в столбце:

  1. Загрузите данные в Power Query.
  2. Выделите столбец → Главная → Группировка.
  3. Выберите операцию Количество строк.

5.3. VBA-макросы

Для повторяющихся задач напишите макрос. Например, этот код считает количество ячеек с текстом "Да" в выделенном диапазоне:

Sub CountYes()

Dim rng As Range, cell As Range, count As Integer

Set rng = Selection

count = 0

For Each cell In rng

If cell.Value = "Да" Then count = count + 1

Next cell

MsgBox "Количество ячеек с 'Да': " & count

End Sub

Чтобы запустить макрос, нажмите Alt+F8, выберите CountYes и нажмите Выполнить.

Как посчитать количество ячеек с формулами?

Используйте этот VBA-код, чтобы посчитать ячейки с формулами в выделенном диапазоне:

Sub CountFormulas()

Dim rng As Range, cell As Range, count As Integer

Set rng = Selection

count = 0

For Each cell In rng

If cell.HasFormula Then count = count + 1

Next cell

MsgBox "Количество ячеек с формулами: " & count

End Sub

Это полезно для аудита таблиц, где важно отслеживать расчётные и введённые вручную данные.

6. Типичные ошибки и как их избежать

Даже опытные пользователи сталкиваются с проблемами при подсчёте значений. Вот самые распространённые:

Ошибка Причина Решение
#ИМЯ? в формуле Опечатка в названии функции или незакрытые кавычки Проверьте синтаксис. Например, =СЧЁТЕСЛИ(A2:A10; "Да") — кавычки обязательны!
Формула возвращает 0, хотя значения есть Критерии указаны неверно (например, число без кавычек или дата в неправильном формате) Для чисел кавычки не нужны: =СЧЁТЕСЛИ(A2:A10; 5). Для дат используйте "10.05.2026".
Не совпадает количество при фильтрации и формулах В данных есть скрытые символы (пробелы, переносы строк) Очистите данные функцией СЖПРОБЕЛЫ или ПЕЧСИМВ.
СЧЁТЕСЛИМН выдаёт #ЗНАЧ! Диапазоны разного размера Убедитесь, что все диапазоны охватывают одинаковое количество строк.

Ещё одна частая проблема — объединённые ячейки. Функции СЧЁТЕСЛИ и СЧЁТЕСЛИМН игнорируют их содержимое. Чтобы этого избежать, разъедините ячейки (Главная → Объединить и центрировать) или используйте VBA.

Если данные импортированы из внешних источников (например, или PDF), проверьте их на наличие непечатаемых символов. Для этого используйте функцию:

=КОДСИМВ(ЛЕВСИМВ(A2;1))

Если результат — 160, в ячейке неразрывный пробел. Замените его на обычный функцией ПОДСТАВИТЬ.

7. Подсчёт в Google Таблицах: отличия от Excel

В Google Таблицах те же функции работают с небольшими нюансами:

  • 🔹 Формулы вводятся без = в начале (но в русскоязычной версии может потребоваться).
  • 🔹 Функция СЧЁТЕСЛИ называется COUNTIF, а СЧЁТЕСЛИМНCOUNTIFS (даже в русской версии).
  • 🔹 Нет Power Query, но есть App Script для автоматизации.
  • 🔹 Условное форматирование поддерживает больше правил, чем Excel.

Пример формулы для подсчёта в Google Таблицах:

=COUNTIF(A2:A100; "Да")

Важное отличие: в Google Таблицах функции обновляются в реальном времени при изменении данных, тогда как в Excel иногда требуется принудительное пересчёт (F9).

Для работы с большими массивами данных в Google Таблицах используйте функцию QUERY — аналог SQL-запросов. Например, чтобы посчитать количество строк, где "Статус" = "Выполнено":

=QUERY(A2:D100; "SELECT COUNT(A) WHERE D = 'Выполнено'"; 1)

FAQ: Ответы на частые вопросы

Как посчитать количество ячеек с текстом (игнорируя числа и даты)?

Используйте функцию СЧЁТЕСЛИ с критерием "*" (любой текст) и вычтите из неё количество нетекстовых ячеек. Или примените формулу массива:

=СУММ(--(ЕТЕКСТ(A2:A100)))

Вводится с Ctrl+Shift+Enter в старых версиях Excel.

Можно ли посчитать количество ячеек, где текст начинается с определённой буквы?

Да, используйте подстановочный знак ? (один символ) или * (любое количество символов). Например, чтобы посчитать ячейки, начинающиеся на "А":

=СЧЁТЕСЛИ(A2:A100; "А*")

Для регистронезависимого поиска добавьте функцию НАЙТИ:

=СУММ(--(НЕОШ(НАЙТИ("а"; A2:A100))))
Как посчитать количество уникальных значений в столбце?

В Excel 365 и 2021 есть функция УНИК:

=СЧЁТ(УНИК(A2:A100))

В старых версиях используйте комбинацию:

=СУММ(1/ЧАСТОТА(A2:A100; A2:A100))

Внимание: это формула массива — подтвердите её Ctrl+Shift+Enter.

Почему СЧЁТЕСЛИ не считает ячейки с формулами, которые возвращают нужное значение?

Функция СЧЁТЕСЛИ анализирует отображаемое значение, а не формулу. Если формула возвращает текст "Да", но в ячейке есть пробелы или непечатаемые символы, совпадения не будет. Очистите данные функцией СЖПРОБЕЛЫ:

=СЧЁТЕСЛИ(СЖПРОБЕЛЫ(A2:A100); "Да")
Как посчитать количество ячеек с ошибками (#Н/Д, #ЗНАЧ! и т.д.)?

Используйте функцию ЕОШИБКА в формуле массива:

=СУММ(--(ЕОШИБКА(A2:A100)))

Чтобы посчитать конкретную ошибку (например, #Н/Д):

=СУММ(--(ЕНД(A2:A100)))