Подсчёт строк по заданным критериям — одна из самых востребованных операций в Microsoft Excel и Google Таблицах. Без этого навыка невозможно анализировать данные: будь то продажи по регионам, количество клиентов с определённым статусом или фильтрация ошибок в больших массивах. Однако многие пользователи ограничиваются ручным пересчётом или примитивными фильтрами, теряя часы на задачи, которые решаются за минуты.
В этой статье разберём 7 проверенных методов — от базовых функций до продвинутых приёмов с массивами. Вы узнаете, как считать строки по одному условию, нескольким критериям одновременно, а также как автоматизировать процесс с помощью сводных таблиц и Power Query. Особое внимание уделим типичным ошибкам, которые искажают результаты, и нюансам работы с текстом, числами и датами.
Если вы никогда не работали с формулами в Excel, не переживайте: каждый метод сопровождается пошаговыми скриншотами и примерами, которые можно скопировать в свою таблицу. А для опытных пользователей мы подготовили раздел с малоизвестными трюками, которые выходят за рамки стандартных инструкций.
1. Базовый метод: функция СЧЁТЕСЛИ для одного условия
Функция СЧЁТЕСЛИ (COUNTIF в английской версии) — самый простой способ посчитать строки, соответствующие одному критерию. Она работает с текстом, числами, датами и даже логическими выражениями. Синтаксис функции:
=СЧЁТЕСЛИ(диапазон; условие)
Например, чтобы посчитать количество ячеек со словом "Да" в столбце B2:B100, используйте:
=СЧЁТЕСЛИ(B2:B100; "Да")
А если нужно найти все числа больше 100 в столбце D:
=СЧЁТЕСЛИ(D2:D100; ">100")
- 📌 Текстовые условия всегда берутся в кавычки:
"Да","Нет","Москва". - 🔢 Числовые критерии можно записывать с операторами:
">50","<=100". - 🗓️ Даты указывайте в формате
">=01.01.2023"или с функциейДАТА().
⚠️ Внимание: Если в условии используете символы(любое количество знаков) или?(один знак), экранируйте их тильдой:СЧЁТЕСЛИ(A2:A100; "~")— так Excel не воспримет их как подстановочные знаки.
Пример из практики: допустим, у вас список заказов с статусами "Оплачен", "Отменён" и "В обработке". Чтобы узнать, сколько заказов отменено, введите:
=СЧЁТЕСЛИ(C2:C500; "Отменён")
Указали правильный диапазон ячеек (без заголовков)|
Условие взято в кавычки (даже если это число)|
Проверены опечатки в текстовом критерии|
Для дат использован формат, соответствующий региональным настройкам Excel-->
2. СЧЁТЕСЛИМН: подсчёт по нескольким условиям
Когда нужно учитывать два и более критериев одновременно, на помощь приходит функция СЧЁТЕСЛИМН (COUNTIFS). Она проверяет все условия одновременно (логическое "И"), а не последовательно. Синтаксис:
=СЧЁТЕСЛИМН(диапазон1; условие1; [диапазон2; условие2]; ...)
Классический пример: посчитать количество продаж в Москве (столбец B) на сумму больше 5000 (столбец D):
=СЧЁТЕСЛИМН(B2:B100; "Москва"; D2:D100; ">5000")
Важно: диапазоны должны быть одинакового размера, иначе Excel вернёт ошибку #ЗНАЧ!. Если нужно посчитать строки, где хотя бы одно из условий выполняется (логическое "ИЛИ"), используйте сумму нескольких СЧЁТЕСЛИ или СУММПРОИЗВ (разберём ниже).
- 📊 До 127 пар диапазон/условие можно указать в одной функции (ограничение Excel).
- 🔄 Диапазоны должны совпадать по количеству строк, но могут относиться к разным столбцам.
- 🚫 Не работает с массивами — для этого нужен
СУММПРОИЗВ.
Практический кейс: подсчёт сотрудников, которые работают в отделе "Маркетинг" (столбец C) и имеют зарплату меньше 70 000 (столбец E):
=СЧЁТЕСЛИМН(C2:C200; "Маркетинг"; E2:E200; "<70000")
3. Подсчёт с логическими операторами: СУММПРОИЗВ
Функция СУММПРОИЗВ (SUMPRODUCT) — универсальный инструмент для работы с массивами. Она умеет умножать и суммировать данные, но её часто используют для подсчёта строк по сложным условиям, включая "ИЛИ", "НЕ" и комбинации критериев.
Базовый синтаксис для подсчёта:
=СУММПРОИЗВ(--(условие1); --(условие2); ...)
Двойной минус (--) преобразует логические значения ИСТИНА/ЛОЖЬ в 1/0 для суммирования.
Пример: посчитать строки, где город "Санкт-Петербург" (столбец B) ИЛИ сумма заказа > 10 000 (столбец D):
=СУММПРОИЗВ(--((B2:B100="Санкт-Петербург") + (D2:D100>10000)))
Разберём формулу:
1. (B2:B100="Санкт-Петербург") — возвращает массив ИСТИНА/ЛОЖЬ.
2. + — оператор "ИЛИ" (вместо ИЛИ()).
3. -- — преобразует в 1/0.
4. СУММПРОИЗВ суммирует все единицы.
- ⚡ "И" в
СУММПРОИЗВ: используйте*вместо+:=СУММПРОИЗВ(--(A2:A100="Да"); --(B2:B100>5)). - 🔍 "НЕ": добавьте
=0для инверсии:=СУММПРОИЗВ(--(A2:A100<>"Нет")). - 📈 Производительность:
СУММПРОИЗВработает медленнееСЧЁТЕСЛИМН, но гибче.
⚠️ Внимание: Если в диапазоне есть пустые ячейки,СУММПРОИЗВможет вернуть некорректный результат. ИспользуйтеЕНД()для проверки:=СУММПРОИЗВ(--(ЕНД(A2:A100)=ИСТИНА); --(A2:A100="Да")).
| Задача | Формула | Пояснение |
|---|---|---|
| Считать "Да" И "Нет" | =СЧЁТЕСЛИ(A2:A100; "Да") + СЧЁТЕСЛИ(A2:A100; "Нет") |
Простой способ для "ИЛИ" |
| "ИЛИ" в одном столбце | =СУММПРОИЗВ(--((A2:A100="Да")+(A2:A100="Нет"))) |
Суммирует оба условия |
| Считать пустые ячейки | =СЧЁТЕСЛИ(A2:A100; "") |
Или =СЧИТАТЬПУСТОТЫ(A2:A100) |
| "НЕ пустое" И ">100" | =СУММПРОИЗВ(--(A2:A100<>""); --(A2:A100>100)) |
Комбинация двух критериев |
4. Подсчёт с помощью фильтров (без формул)
Если формулы кажутся сложными, можно обойтись встроенными фильтрами Excel. Этот метод визуально нагляден и не требует знания функций. Алгоритм действий:
- Выделите заголовки столбцов (например, строку 1).
- Нажмите
Данные → Фильтр(или сочетаниеCtrl+Shift+L). - Кликните на стрелку в столбце, по которому нужно фильтровать.
- Выберите нужные критерии (например, галочки напротив "Да" и "Нет").
- Количество отфильтрованных строк отобразится в синей области статуса (внизу окна Excel).
Преимущества метода:
- Нет риска ошибок в формулах.
- Мгновенный результат — не нужно ждать пересчёта.
- Визуальный контроль — вы видите, какие именно строки попали в выборку.
Недостатки:
- Не автоматизируется — при изменении данных фильтр придётся применять заново.
- Не подходит для сложных условий (например, "ИЛИ" с разными столбцами).
- 🔎 Поиск по части текста: в фильтре введите
текст(например,*овнайдёт "Иванов", "Петров"). - 📅 Фильтр по датам: используйте календарь или операторы (
>01.01.2023). - 🎨 Цветовая фильтрация: если ячейки выделены цветом, отфильтруйте по нему в
Фильтр по цвету.
⚠️ Внимание: Если после фильтрации в статусной строке отображается "0 из N записей", проверьте:- Нет ли скрытых строк (нажмите
Главная → Формат → Скрыть/отобразить → Отобразить строки).- Правильно ли указаны критерии (например, регистр букв важен при текстовом фильтре).
Как сохранить отфильтрованные данные в новую таблицу?
1. Примените фильтр.
2. Выделите видимые строки (нажмите Ctrl+A, затем Alt+; для выбора только видимых ячеек).
3. Скопируйте (Ctrl+C) и вставьте (Ctrl+V) на новый лист.
4. Удалите фильтр (Данные → Фильтр) — оригинальные данные останутся нетронутыми.
5. Сводные таблицы: автоматический подсчёт с группировкой
Сводные таблицы (Вставка → Сводная таблица) — мощный инструмент для динамического подсчёта строк по любым критериям. Они автоматически обновляются при изменении исходных данных и позволяют группировать результаты (например, по месяцам, категориям и т.д.).
Пошаговая инструкция:
1. Выделите исходный диапазон данных (включая заголовки).
2. Нажмите Вставка → Сводная таблица и выберите, куда её разместить (на новом листе или существующем).
3. В панели Поля сводной таблицы перетащите:
- Столбец с условием (например, "Город") в область Строки.
- Столбец, который нужно посчитать (или просто "Количество"), в область Значения.
4. Excel автоматически подсчитает количество строк для каждого уникального значения.
Пример: у вас таблица с продажами по городам и менеджерам. Чтобы узнать, сколько сделок закрыл каждый менеджер в каждом городе:
- Перетащите "Город" в Строки.
- Перетащите "Менеджер" в Столбцы.
- Перетащите "Номер сделки" (или любой другой столбец) в Значения — Excel посчитает количество строк.
- 📊 Группировка дат: кликните правой кнопкой по дате в сводной таблице →
Группировать→ выберите период (месяцы, кварталы). - 🔄 Обновление: если данные изменились, нажмите на сводную таблицу и выберите
Анализ → Обновить. - 🎯 Фильтрация: добавьте поле в область Фильтры, чтобы динамически менять выборку.
Преимущество сводных таблиц перед формулами:
- Интерактивность: можно менять группировки на лету.
- Визуализация: данные сразу готовы для построения графиков.
- Масштабируемость: легко анализировать миллионы строк.
6. Продвинутые приёмы: Power Query и массивы
Для пользователей, работающих с очень большими данными (десятки тысяч строк) или нуждающихся в автоматизации, подойдут инструменты Power Query и формулы массивов.
Power Query (Excel 2016+ и Office 365)
Power Query позволяет загружать, трансформировать и подсчитывать данные без формул. Алгоритм:
1. Выделите исходную таблицу → Данные → Из таблицы/диапазона (вкладка Power Query).
2. В редакторе запросов выберите столбец, по которому нужно фильтровать → Главная → Фильтр → Текстовые фильтры (или числовые).
3. Укажите критерии (например, "равно", "больше").
4. Нажмите Главная → Закрыть и загрузить в... и выберите Только создание связи.
5. Создайте сводную таблицу на основе загруженных данных.
Преимущества:
- Не нагружает файл — данные обрабатываются при обновлении.
- Поддерживает сложные преобразования (объединение таблиц, замена значений и т.д.).
- Автоматически обновляется при изменении источника.
Формулы массивов (Excel 365 и 2019+)
В новых версиях Excel появились динамические массивы, которые упрощают работу с большими диапазонами. Например, чтобы посчитать строки, где значение в столбце A содержится в списке (столбец D2:D10), используйте:
=СЧЁТ(ФИЛЬТР(A2:A100; ПОИСКПОЗ(A2:A100; D2:D10; 0)))
Или для подсчёта уникальных значений:
=СЧЁТ(УНИКАЛЬН(A2:A100))
⚠️ Внимание: Формулы массивов в старых версиях Excel (2016 и ранее) требуют подтверждения Ctrl+Shift+Enter. В Excel 365 они работают автоматически.
7. Типичные ошибки и как их избежать
Даже опытные пользователи допускают ошибки при подсчёте строк. Вот TOP-5 проблем и их решения:
- 🚨 Ошибка #ЗНАЧ! в СЧЁТЕСЛИМН: диапазоны разного размера. Проверьте, что все указанные диапазоны имеют одинаковое количество строк.
- 📉 Неправильный результат в СУММПРОИЗВ: забыли двойной минус (
--) для преобразованияИСТИНА/ЛОЖЬв1/0. - 🔠 Регистрозависимость:
СЧЁТЕСЛИразличает "Да" и "да". ИспользуйтеВПРилиНАЙТИдля регистронезависимого поиска. - 🗃️ Скрытые строки искажают результат: фильтры и
СЧЁТЕСЛИучитывают скрытые данные. ИспользуйтеПРОМЕЖУТОЧНЫЕ.ИТОГИс аргументом103для игнорирования скрытых строк. - 📅 Ошибки с датами: Excel хранит даты как числа. Убедитесь, что ячейки отформатированы как дата, а не текст.
Пример исправления ошибки с регистром:
=СУММПРОИЗВ(--(ПОИСК("да"; НИЖНРЕГ(A2:A100))>0))
Эта формула найдёт все варианты: "Да", "да", "ДА", "Подарочный".
Ещё одна частая проблема — пустые ячейки. Чтобы посчитать только непустые строки:
=СЧЁТЕСЛИ(A2:A100; "<>")
⚠️ Внимание: Если в ячейке формула, возвращающая пустую строку (=""),СЧЁТЕСЛИвоспримет её как непустую. Используйте=СЧИТАТЬЗНАЧ(A2:A100)для подсчёта только ячеек с данными (исключая формулы).
FAQ: Ответы на частые вопросы
Как посчитать строки, где значение в одном столбце больше, чем в другом?
Используйте СУММПРОИЗВ:
=СУММПРОИЗВ(--(A2:A100 > B2:B100))
Эта формула вернёт количество строк, где значение в столбце A больше, чем в B.
Можно ли посчитать строки по условию в Google Таблицах?
Да, в Google Sheets работают те же функции:
- =COUNTIF (аналог СЧЁТЕСЛИ),
- =COUNTIFS (аналог СЧЁТЕСЛИМН),
- =SUMPRODUCT (аналог СУММПРОИЗВ).
Синтаксис идентичен Excel, но в Google Таблицах нет Power Query (замените на QUERY).
Как посчитать уникальные строки по условию?
В Excel 365:
=СЧЁТ(УНИКАЛЬН(ФИЛЬТР(A2:A100; A2:A100="Да")))
В старых версиях:
=СУММПРОИЗВ(1/СЧЁТЕСЛИ(ЕСЛИ(A2:A100="Да"; A2:A100); ЕСЛИ(A2:A100="Да"; A2:A100)))
(вводится как формула массива с Ctrl+Shift+Enter).
Почему СЧЁТЕСЛИМН возвращает 0, хотя данные есть?
Вероятные причины:
- Диапазоны разного размера.
- Опечатка в условии (проверьте регистр, пробелы).
- Ячейки отформатированы как текст, а условие — как число (и наоборот).
- В диапазоне есть ошибки (#Н/Д, #ЗНАЧ!).
Используйте ЕТЕКСТ() для проверки формата: =ЕТЕКСТ(A2).
Как посчитать строки с ошибками (#Н/Д, #ДЕЛ/0!)?
Для подсчёта ячеек с ошибками:
=СЧЁТЕСЛИ(A2:A100; "#Н/Д") + СЧЁТЕСЛИ(A2:A100; "#ДЕЛ/0!")
Или универсальный вариант для всех типов ошибок:
=СУММПРОИЗВ(--(ЕОШ(A2:A100)))