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

Подсчёт строк по заданным критериям — одна из самых востребованных операций в Microsoft Excel и Google Таблицах. Без этого навыка невозможно анализировать данные: будь то отчёты о продажах, опросы клиентов или инвентаризационные списки. Однако многие пользователи ограничиваются примитивным подсчётом всех строк (СЧЁТ), не подозревая, что инструмент позволяет считать только те записи, которые соответствуют конкретным условиям — например, товары с ценой выше 1000 ₽ или клиенты из определённого региона.

В этой статье мы разберём 7 практических методов, от базовых функций до продвинутых приёмов с массивами и Power Query. Вы узнаете, как избежать типичных ошибок (например, когда формула возвращает #ЗНАЧ!), как работать с текстовыми и числовыми данными, а также как автоматизировать подсчёт с помощью сводных таблиц. Особое внимание уделим нюансам, которые не описывают в стандартных руководствах — например, почему СЧЁТЕСЛИ может пропустить ячейки с пробелами или как считать строки по нескольким критериям одновременно.

Если вы никогда не использовали функции подсчёта по условию, начните с первых двух разделов. Опытные пользователи могут сразу перейти к разделам про СЧЁТЕСЛИМН или Power Query — там вас ждут неочевидные фишки, которые сэкономят часы работы.

1. Базовый подсчёт: функция СЧЁТЕСЛИ для одного условия

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

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

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

где:

  • 📌 диапазон — столбец или строка, в которой ищем совпадения (например, A2:A100);
  • 🔍 критерий — условие для подсчёта (может быть числом, текстом в кавычках, выражением типа ">100" или "<>Пусто").

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

  • 📊 Подсчитать ячейки со значением "Да" в столбце B:
    =СЧЁТЕСЛИ(B2:B100; "Да")
  • 💰 Найти количество товаров дороже 500 ₽ в столбце C:
    =СЧЁТЕСЛИ(C2:C100; ">500")
  • 📅 Посчитать даты позже 01.01.2026 в столбце D:
    =СЧЁТЕСЛИ(D2:D100; ">01.01.2026")

Критическая особенность: СЧЁТЕСЛИ чувствительна к регистру только в Google Таблицах. В Excel "Да" и "да" будут считаться одинаково. Если нужно учитывать регистр, используйте комбинацию СУММПРОИЗВ с ТОЧНО (разберём в разделе про массивы).

⚠️ Внимание: Если в критерии используете символы * (любое количество знаков) или ? (один знак), экранируйте их тильдой ~. Например, чтобы найти ячейки с вопросительным знаком, пишите: =СЧЁТЕСЛИ(A2:A100; "~?").
📊 Как часто вы используете СЧЁТЕСЛИ в работе?
Ежедневно
Несколько раз в неделю
Редко
Никогда не слышал о такой функции

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

Когда нужно посчитать строки, соответствующие двум и более критериям одновременно, СЧЁТЕСЛИ бессильна. Здесь на помощь приходит СЧЁТЕСЛИМН (COUNTIFS). Например, вы хотите узнать, сколько заказов на сумму >10 000 ₽ было сделано в Москве. Или сколько сотрудников с окладом от 50 000 до 100 000 ₽ работают в отделе маркетинга.

Синтаксис:

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

Максимальное количество пар "диапазон-критерий" — 127Excel 365 и Excel 2019).

Примеры:

ЗадачаФормула
Сколько товаров категории "Электроника" стоят >5000 ₽?=СЧЁТЕСЛИМН(B2:B100; "Электроника"; C2:C100; ">5000")
Сколько заказов от клиентов из СПб были оплачены картой?=СЧЁТЕСЛИМН(D2:D100; "Санкт-Петербург"; E2:E100; "Карта")
Сколько строк содержат дату между 01.01.2026 и 31.01.2026?=СЧЁТЕСЛИМН(A2:A100; ">01.01.2026"; A2:A100; "<31.01.2026")

Важный нюанс: Все диапазоны в СЧЁТЕСЛИМН должны быть одинакового размера. Если в первом диапазоне 100 строк, а во втором — 50, формула вернёт ошибку. Также следите, чтобы строки в диапазонах соответствовали друг другу (т.е. данные в B2 относились к той же записи, что и в C2).

3. Подсчёт с текстовыми фильтрами: символы подстановки и точные совпадения

Работа с текстовыми данными в Excel имеет свои особенности. Например, как посчитать все ячейки, которые начинаются с определённого слова или содержат фрагмент? Здесь помогут символы подстановки:

  • 🌟 * — заменяет любое количество символов (включая ноль). Пример: "*ов" найдёт "Иванов", "Петров", "Сидоров".
  • 🔠 ? — заменяет ровно один символ. Пример: "с?т" найдёт "кот", "кит", но не "скот".
  • 🚫 ~ — экранирует символы. Например, чтобы найти literal , используйте "~".

Примеры формул:

  • 📌 Подсчитать фамилии на "-ова":
    =СЧЁТЕСЛИ(A2:A100; "*ова")
  • 📌 Найти все артикулы, содержащие дефис:
    =СЧЁТЕСЛИ(B2:B100; "-")
  • 📌 Посчитать ячейки, где ровно 5 символов (например, индексы):
    =СЧЁТЕСЛИ(C2:C100; "?????")

Если вам нужно точное совпадение (включая регистр в Google Таблицах), используйте комбинацию СУММПРОИЗВ и ТОЧНО:

=СУММПРОИЗВ(--(ТОЧНО(A2:A100; "Пример")))

Эта формула вернёт количество ячеек, которые в точности равны "Пример" (без лишних пробелов, с учётом регистра).

⚠️ Внимание: Функция НАЙТИ в критериях СЧЁТЕСЛИ не работает! Чтобы посчитать ячейки, содержащие подстроку, используйте символ *: =СЧЁТЕСЛИ(A2:A100; "текст").

4. Продвинутый подсчёт: массивы и СУММПРОИЗВ

Когда стандартные функции не справляются (например, нужно посчитать строки по условию, которое зависит от нескольких столбцов или требует сложной логики), на помощь приходят формулы массивов. Один из самых мощных инструментов — СУММПРОИЗВ (SUMPRODUCT).

Преимущества СУММПРОИЗВ:

  • 🔹 Работает с несколько столбцами без ограничений на количество условий.
  • 🔹 Позволяет использовать логические выражения (например, (A2:A100="Да")*(B2:B100>100)).
  • 🔹 Не требует нажатия Ctrl+Shift+Enter (в отличие от старых формул массивов).

Примеры:

  • 📊 Посчитать строки, где в столбце A "Да", а в столбце B значение >100:
    =СУММПРОИЗВ(--(A2:A100="Да"); --(B2:B100>100))
  • 📊 Найти количество строк, где сумма в столбцах C и D превышает 1000:
    =СУММПРОИЗВ(--(C2:C100+D2:D100>1000))
  • 📊 Подсчитать уникальные значения в столбце A (альтернатива УНИК в новых версиях Excel):
    =СУММПРОИЗВ(1/СЧЁТЕСЛИ(A2:A100; A2:A100 & ""))

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

Убедитесь, что диапазоны одинакового размера|Проверьте, нет ли пустых ячеек (они могут исказить результат)|Используйте абсолютные ссылки ($A$2:$A$100), если копируете формулу|Тестируйте формулу на небольшом диапазоне перед применением ко всей таблице-->

5. Подсчёт с помощью фильтров и сводных таблиц

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

Метод 1: Автофильтр

  1. Выделите диапазон данных (включая заголовки).
  2. Нажмите Данные → Фильтр (или Ctrl+Shift+L).
  3. Раскройте выпадающий список в столбце, по которому хотите фильтровать.
  4. Выберите нужные критерии (например, текстовые фильтры или числовые условия).
  5. Количество отфильтрованных строк отобразится в строке состояния (внизу окна Excel).

Метод 2: Сводная таблица

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

Преимущество сводных таблиц — возможность мгновенно менять критерии перетаскиванием полей. Например, можно сначала посчитать количество заказов по регионам, а затем — по менеджерам или датам.

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

Чтобы сводная таблица показывала количество уникальных записей (а не всех строк), щёлкните правой кнопкой по полю в области "Значения" → "Параметры полей значений" → выберите "Дополнительные вычисления" → "Отличающиеся".

⚠️ Внимание: Фильтры и сводные таблицы не обновляются автоматически при изменении исходных данных. Не забывайте нажимать Обновить (правая кнопка по сводной таблице → Обновить или Данные → Обновить все).

6. Подсчёт строк с ошибками и пустыми ячейками

Частая проблема при подсчёте — пустые ячейки или ячейки с ошибками (#Н/Д, #ЗНАЧ! и т.д.). Стандартные функции их игнорируют, но иногда нужно, наоборот, посчитать именно такие строки.

Как посчитать пустые ячейки?

  • 📌 С помощью СЧИТАТЬПУСТОТЫ:
    =СЧИТАТЬПУСТОТЫ(A2:A100)
  • 📌 Через СЧЁТЕСЛИ (если ячейки действительно пусты, а не содержат пробелы):
    =СЧЁТЕСЛИ(A2:A100; "")

Как посчитать ячейки с ошибками?

  • 📌 Используйте ЕОШИБКА в формуле массива:
    =СУММПРОИЗВ(--(ЕОШИБКА(A2:A100)))
  • 📌 Чтобы посчитать конкретную ошибку (например, #Н/Д):
    =СУММПРОИЗВ(--(ЕНД(A2:A100)))

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

Используйте СЧЁТЗ (считает все непустые ячейки, включая текст и ошибки):

=СЧЁТЗ(A2:A100)
ЗадачаФормулаПримечание
Посчитать пустые ячейки=СЧИТАТЬПУСТОТЫ(A2:A100)Игнорирует ячейки с пробелами
Посчитать ячейки с любыми ошибками=СУММПРОИЗВ(--(ЕОШИБКА(A2:A100)))Включает #Н/Д, #ЗНАЧ!, #ДЕЛ/0! и др.
Посчитать ячейки с текстом (не числа)=СУММПРОИЗВ(--(ЕТЕКСТ(A2:A100)))Игнорирует числа и даты
Посчитать ячейки с формулами (даже если результат пуст)=СУММПРОИЗВ(--(ФОРМУЛТЕКСТ(A2:A100)<>""))Требует включённой итерации (Файл → Параметры → Формулы → Включить итеративные вычисления)

7. Автоматизация подсчёта: Power Query и VBA

Для регулярных задач (например, ежемесячных отчётов) ручной подсчёт строк неэффективен. В таких случаях поможет Power QueryExcel 2016+) или VBA-макросы.

Метод 1: Power Query

  1. Выделите исходные данные и нажмите Данные → Из таблицы/диапазона (или Данные → Получить данные → Из таблицы/диапазона в Excel 2016).
  2. В открывшемся редакторе Power Query выберите столбец, по которому хотите фильтровать.
  3. Нажмите на стрелку в заголовке столбца и задайте критерии (например, "больше чем 100").
  4. Добавьте новый столбец с функцией "Подсчёт строк" (Добавить столбец → Настраиваемый столбец → введите =1).
  5. Сгруппируйте данные по нужному столбцу, используя операцию "Сумма" для нового столбца.
  6. Нажмите Закрыть и загрузить, чтобы вернуть результаты в Excel.

Метод 2: VBA-макрос

Если вам нужно динамически подсчитывать строки по сложным условиям, напишите простой макрос:

Sub CountRowsByCriteria()

Dim ws As Worksheet

Dim rng As Range

Dim count As Long

Set ws = ThisWorkbook.Sheets("Лист1") ' Замените на имя вашего листа

Set rng = ws.Range("A2:A" & ws.Cells(ws.Rows.count, "A").End(xlUp).Row)

count = 0

For Each cell In rng

If cell.Value > 100 And cell.Offset(0, 1).Value = "Да" Then ' Условие: значение >100 и в соседней ячейке "Да"

count = count + 1

End If

Next cell

MsgBox "Найдено строк: " & count

End Sub

Этот макрос подсчитывает строки, где в столбце A значение >100, а в столбце B — "Да". Вы можете модифицировать условие под свои нужды.

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

Как посчитать строки, где дата попадает в текущий месяц?

Используйте СЧЁТЕСЛИМН с функциями ДАТА, ГОД и МЕСЯЦ:

=СЧЁТЕСЛИМН(A2:A100; ">="&ДАТА(ГОД(СЕГОДНЯ()); МЕСЯЦ(СЕГОДНЯ()); 1); A2:A100; "<="&КОНМЕСЯЦА(СЕГОДНЯ(); 0))

Эта формула вернёт количество дат в столбце A, которые приходятся на текущий месяц.

Почему СЧЁТЕСЛИ не считает ячейки с пробелами?

Функция СЧЁТЕСЛИ(A2:A100; "") считает только полностью пустые ячейки. Чтобы посчитать ячейки с пробелами или невидимыми символами, используйте:

=СУММПРОИЗВ(--(ДЛСТР(A2:A100)=0))

Или для ячеек, которые выглядят пустыми (включая пробелы):

=СУММПРОИЗВ(--(СЖПРОБЕЛЫ(A2:A100)=""))
Можно ли посчитать строки по условию в Google Таблицах?

Да, в Google Таблицах работают те же функции: СЧЁТЕСЛИ, СЧЁТЕСЛИМН, СУММПРОИЗВ. Однако есть нюансы:

  • 🔹 СЧЁТЕСЛИ чувствительна к регистру (в отличие от Excel).
  • 🔹 Для формул массивов (например, с СУММПРОИЗВ) не нужно нажимать Ctrl+Shift+Enter.
  • 🔹 Функция ФИЛЬТР (аналог FILTER) позволяет динамически отображать строки по условию, а затем подсчитывать их через СЧЁТ.
Как посчитать строки, где значение входит в список?

Если у вас есть список допустимых значений (например, в диапазоне F2:F10), используйте:

=СУММПРОИЗВ(--(СЧЁТЕСЛИ(F2:F10; A2:A100)>0))

Эта формула вернёт количество ячеек в A2:A100, которые присутствуют в списке F2:F10.

Почему формула возвращает #ЗНАЧ!?

Ошибка #ЗНАЧ! в функциях подсчёта обычно возникает по трём причинам:

  1. Несовпадающие диапазоны: В СЧЁТЕСЛИМН все диапазоны должны быть одного размера.
  2. Неправильный синтаксис критерия: Например, забыли кавычки для текста (=СЧЁТЕСЛИ(A2:A100; Да) вместо =СЧЁТЕСЛИ(A2:A100; "Да")).
  3. Ошибки в данных: Если в диапазоне есть ячейки с #Н/Д, некоторые функции (например, СУММПРОИЗВ) могут вернуть ошибку. Используйте ЕСЛИОШИБКА для обработки:
    =ЕСЛИОШИБКА(СУММПРОИЗВ(--(A2:A100="Да")); 0)