Как посчитать количество ячеек с определенным значением в Excel: от СЧЁТЕСЛИ до Power Query

Работаете с большими таблицами в Microsoft Excel и нужно быстро узнать, сколько раз встречается конкретное значение? Возможно, вы анализируете продажи и хотите посчитать количество заказов с определенным статусом, или проверяете анкеты на наличие повторяющихся ответов. Вручную перебирать тысячи строк — не вариант. К счастью, в Excel есть как минимум 5 способов автоматизировать этот процесс: от элементарных функций до продвинутых инструментов вроде Power Query.

Но как выбрать оптимальный метод? Всё зависит от вашей задачи. Если нужно просто посчитать количество ячеек с текстом "Да" — хватит функции СЧЁТЕСЛИ. А если условия сложные (например, "подсчитать ячейки, где значение больше 100 И содержит слово 'ургентно'") — потребуется комбинация СЧЁТЕСЛИМН с регулярными выражениями. В этой статье разберём все варианты с примерами, нюансами и лайфхаками, которые сэкономят вам часы работы.

Перед тем как перейти к инструкциям, проверьте версию вашего Excel. Некоторые функции (например, СЧЁТЕСЛИМН с диапазонами разного размера) работают только в Excel 365 и Excel 2021. Если у вас старая версия — не переживайте, мы предложим альтернативы.

📊 Какую версию Excel вы используете?
Excel 365 (подписка)
Excel 2019/2021
Excel 2016 или старше
Mac-версия Excel
Не знаю

1. Функция СЧЁТЕСЛИ: простой подсчёт по одному критерию

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

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

Где:

  • 📌 диапазон — область ячеек, в которой ведётся поиск (например, A2:A100).
  • 🔍 критерий — условие для подсчёта. Может быть числом (100), текстом ("Да"), выражением (">50") или ссылкой на ячейку (B1).

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

  • 📊 Подсчитать количество ячеек со словом "Отменено" в столбце D:
    =СЧЁТЕСЛИ(D2:D500; "Отменено")
  • 📈 Найти все числа больше 1000 в диапазоне B2:B200:
    =СЧЁТЕСЛИ(B2:B200; ">1000")
  • 🗓️ Посчитать даты после 01.01.2026 в столбце F:
    =СЧЁТЕСЛИ(F2:F300; ">01.01.2026")
⚠️ Внимание: Функция СЧЁТЕСЛИ нечувствительна к регистру. То есть "да", "ДА" и "Да" будут восприняты как одно и то же значение. Если важен регистр — используйте VBA или Power Query.

Критический нюанс: если критерий — текст длиной более 255 символов, СЧЁТЕСЛИ вернёт ошибку. В этом случае разбейте условие на части или используйте СЧЁТЕСЛИМН.

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

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

  • 📦 Статус = "Оплачено"
  • 💰 Сумма > 5000 рублей
  • 📅 Дата доставки — в текущем месяце

Синтаксис функции:

=СЧЁТЕСЛИМН(диапазон_подсчёта; диапазон_условия1; условие1; [диапазон_условия2; условие2]; ...)

Ключевые правила:

  • 🔢 Диапазон подсчёта — это область, в которой считаются ячейки (обычно совпадает с первым диапазон_условия).
  • 📏 Все диапазоны_условий должны быть одинакового размера, иначе Excel вернёт ошибку #ЗНАЧ!.
  • 🔄 Условия применяются через логическое И (то есть должны выполняться все одновременно).

Пример: подсчёт строк, где в столбце A указан "Мужчина", а в столбце B возраст > 30:

=СЧЁТЕСЛИМН(A2:A100; "Мужчина"; B2:B100; ">30")

Диапазоны условий одинакового размера|Все условия обязательны (логическое И)|Текстовые критерии в кавычках|Числовые критерии без кавычек-->

⚠️ Внимание: В Excel 2016 и старше СЧЁТЕСЛИМН поддерживает до 127 пар условий, а в Excel 365 — до 255. Превышение лимита приведёт к ошибке.

3. Функция СУММПРОИЗВ: альтернатива для сложных условий

Если СЧЁТЕСЛИМН кажется ограниченной, попробуйте СУММПРОИЗВ. Эта функция умножает массивы и возвращает сумму произведений, но её можно адаптировать для подсчёта ячеек. Главное преимущество — поддержка логического ИЛИ и работы с неравномерными диапазонами.

Формула для подсчёта:

=СУММПРОИЗВ(--(диапазон1=условие1); --(диапазон2=условие2); ...)

Разберём на примере: посчитаем количество строк, где в столбце C указан "Москва" ИЛИ "Санкт-Петербург":

=СУММПРОИЗВ(--(C2:C100="Москва"); --(C2:C100="Санкт-Петербург"))

Как это работает:

  • 🔄 Двойной минус (--) преобразует ИСТИНА/ЛОЖЬ в 1/0.
  • 📊 СУММПРОИЗВ складывает все единицы, получая итоговый count.

Для условия И (например, "Москва" И сумма > 1000):

=СУММПРОИЗВ(--(C2:C100="Москва"); --(D2:D100>1000))

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

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

Алгоритм действий:

  1. Выделите диапазон данных (например, A2:D100).
  2. Перейдите на вкладку Главная → Условное форматирование → Создать правило.
  3. Выберите Форматировать только ячейки, которые содержат.
  4. Задайте условие (например, "Текст содержит 'Срочно'") и выберите цвет заливки.
  5. Примените правило. Теперь все соответствующие ячейки будут выделены.
  6. Отфильтруйте таблицу по цвету: Данные → Фильтр → Фильтр по цвету ячейки.

После фильтрации количество видимых строк в области данных — это и есть искомое значение. Чтобы автоматизировать подсчёт, добавьте функцию СЧЁТЗ для видимого диапазона:

=СЧЁТЗ(A3:A100)
(при условии, что строки 1–2 — заголовки, а фильтр применён к строкам 3–100).
⚠️ Внимание: Условное форматирование не обновляется при изменении данных в реальном времени, если не включена автоматическая пересчёт формул (Формулы → Параметры вычислений → Автоматически).

5. Power Query: подсчёт для больших данных

Если вы работаете с огромными таблицами (десятки тысяч строк) или нуждаетесь в динамическом подсчёте при обновлении данных, Power Query — ваш лучший друг. Этот инструмент встроен в Excel 2016+ и позволяет создавать автоматизированные отчёты без формул.

Пошаговая инструкция:

  1. Выделите исходную таблицу и нажмите Данные → Из таблицы/диапазонаExcel 365) или Данные → Получение данных → Из таблицы/диапазонаExcel 2016/2019).
  2. В открывшемся редакторе Power Query выберите столбец, по которому нужно посчитать значения.
  3. Нажмите Главная → Группировка.
  4. В окне группировки укажите:
    • 📌 Столбец — тот, по которому группируем (например, "Статус").
    • 🔢 Новое имя столбца — например, "Количество".
    • 📊 Операция — "Количество значений".
  • Нажмите ОК и Закрыть и загрузить.
  • Результат — новая таблица с уникальными значениями и их количеством. Преимущества метода:

    • Быстродействие: обрабатывает миллионы строк за секунды.
    • 🔄 Динамичность: при обновлении исходных данных достаточно нажать Данные → Обновить все.
    • 📈 Гибкость: можно добавлять дополнительные фильтры и преобразования.
    Как автоматизировать обновление Power Query?

    Чтобы отчёт обновлялся при открытии файла, перейдите в Файл → Параметры → Формулы → Параметры вычислений и выберите Обновлять данные при открытии файла. Также можно настроить автоматическое обновление каждые N минут через Данные → Обновить все → Свойства соединения.

    6. VBA-макрос: подсчёт с учётом регистра и сложных условий

    Если стандартные функции не справляются (например, важен регистр текста или нужны регулярные выражения), напишите простой макрос на VBA. Этот метод требует базовых знаний программирования, но даёт максимальную гибкость.

    Пример макроса для подсчёта ячеек с точным совпадением (с учётом регистра):

    Function CountExact(SearchRange As Range, SearchValue As String) As Long
    

    Dim cell As Range

    Dim count As Long

    count = 0

    For Each cell In SearchRange

    If cell.Value = SearchValue Then

    count = count + 1

    End If

    Next cell

    CountExact = count

    End Function

    Как использовать:

    1. Нажмите Alt + F11, чтобы открыть редактор VBA.
    2. Вставьте код выше в модуль (Insert → Module).
    3. Вернитесь в Excel и используйте функцию как обычно:
      =CountExact(A2:A100; "Да")

    Для подсчёта с регулярными выражениями (например, найти все ячейки, содержащие email) используйте этот код:

    Function CountRegex(SearchRange As Range, Pattern As String) As Long
    

    Dim cell As Range

    Dim regex As Object

    Dim count As Long

    Set regex = CreateObject("VBScript.RegExp")

    regex.Pattern = Pattern

    count = 0

    For Each cell In SearchRange

    If regex.Test(cell.Value) Then

    count = count + 1

    End If

    Next cell

    CountRegex = count

    End Function

    Пример вызова:

    =CountRegex(B2:B200; "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$")
    (это шаблон для поиска email-адресов).
    ⚠️ Внимание: Макросы работают только в файлах с расширением .xlsm (с поддержкой макросов). При открытии такого файла Excel может показать предупреждение о безопасности — разрешите выполнение макросов, если доверяете источнику.

    Сравнение методов: какой выбрать?

    Чтобы облегчить выбор, свели все способы в таблицу с их плюсами и минусами:

    Метод Сложность Поддержка условий Чувствительность к регистру Производительность Когда использовать
    СЧЁТЕСЛИ 1 условие Нет ⚡⚡⚡ Простой подсчёт по одному критерию
    СЧЁТЕСЛИМН ⭐⭐ Множественные (логическое И) Нет ⚡⚡ Подсчёт по нескольким условиям одновременно
    СУММПРОИЗВ ⭐⭐⭐ Множественные (И/ИЛИ) Нет Сложные условия с разными диапазонами
    Условное форматирование 1 условие Нет ⚡⚡⚡ Визуальный анализ + быстрый подсчёт
    Power Query ⭐⭐⭐ Любые Да (настраивается) ⚡⚡⚡⚡ Большие данные, динамические отчёты
    VBA ⭐⭐⭐⭐ Любые (вкл. regex) Да ⚡⚡⚡ Уникальные задачи, чувствительность к регистру

    FAQ: Частые вопросы

    Можно ли посчитать ячейки по цвету?

    Стандартными функциями — нет. Но есть обходные пути:

    1. Используйте VBA-функцию (пример кода есть в сети по запросу "count cells by color Excel VBA").
    2. Примените фильтр по цвету (Данные → Фильтр → Фильтр по цвету ячейки) и используйте СЧЁТЗ для видимого диапазона.

    В Excel 365 появилась функция GET.CELL в именованных формулах, но она требует настройки.

    Почему СЧЁТЕСЛИ возвращает 0, хотя значения есть?

    Вероятные причины:

    • 📌 В критерии лишние пробелы (например, " Да" вместо "Да"). Используйте СЖПРОБЕЛЫ для очистки данных.
    • 🔢 Числа хранятся как текст (или наоборот). Проверьте формат ячеек.
    • 🗂️ Диапазон указан неверно (например, A1:A100 вместо A2:A100).
    • 📅 Даты в разных форматах (например, 01.12.2026 vs 1-Дек).

    Решение: используйте ТИП.ОШИБКИ или ЕТЕКСТ для диагностики.

    Как посчитать уникальные значения в диапазоне?

    Используйте одну из этих функций:

    • В Excel 365:
      =СЧЁТЕСЛИМН(диапазон; диапазон; ">0")

      или

      =УНИК(диапазон)

      (затем примените СЧЁТ к результату).

    • В старых версиях:
      =СУММ(1/СЧЁТЕСЛИ(диапазон; диапазон))
      (вводится как формула массива с Ctrl+Shift+Enter в Excel 2019 и старше).
    Можно ли посчитать ячейки по частичному совпадению?

    Да, используйте подстановочные знаки:

    • =СЧЁТЕСЛИ(A2:A100; "текст") — ищет ячейки, содержащие "текст" в любом месте.
    • =СЧЁТЕСЛИ(A2:A100; "текст*") — ищет ячейки, начинающиеся на "текст".
    • =СЧЁТЕСЛИ(A2:A100; "*текст") — ищет ячейки, заканчивающиеся на "текст".

    Для регистрочувствительного поиска используйте VBA или Power Query.

    Как посчитать количество пустых ячеек?

    Используйте функцию СЧИТАТЬПУСТОТЫ:

    =СЧИТАТЬПУСТОТЫ(A2:A100)

    Она учитывает только полностью пустые ячейки (где нет даже формулы). Если ячейка содержит "" (пустую строку) — она не будет посчитана. Чтобы учесть и такие случаи, используйте:

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