Сколько чего угодно в Excel: подсчёт ячеек, строк и значений за 5 минут

Вы когда-нибудь тратили часы на ручной подсчёт строк в Excel, пока не понимали, что эту работу можно сделать за секунды? Или пытались посчитать количество ячеек с определённым текстом, но формулы упорно выдавали ошибку? Подсчёт данных в электронных таблицах — одна из самых востребованных операций, но далеко не все знают, как делать это эффективно.

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

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

Начнём с самой простой функции — СЧЁТ. Она считает количество ячеек в диапазоне, содержащих числа (включая даты, время и формулы, которые возвращают числа). Например, формула =СЧЁТ(A1:A10) вернёт количество числовых значений в первых десяти ячейках столбца A.

Но у СЧЁТ есть критические ограничения:

  • 🚫 Игнорирует текст — ячейки с словами или символами не учитываются.
  • 🚫 Не видит пустые ячейки — их тоже не посчитает.
  • 🚫 Не работает с логическими значениямиИСТИНА/ЛОЖЬ для неё не существуют.

Пример: если в диапазоне B2:B10 есть числа 5, 10, "", "привет", 15, ИСТИНА, то =СЧЁТ(B2:B10) вернёт 3 (только 5, 10, 15).

2. Подсчёт текста, ошибок и пустых ячеек: СЧЁТЗ, СЧИТАТЬПУСТОТЫ и ЕОШИБКА

Когда СЧЁТ не подходит, на помощь приходят её «сестры»:

Функция Что считает Пример Результат для A1:A5 с данными 1, "текст", #Н/Д, "", ИСТИНА
СЧЁТЗ Все непустые ячейки (числа, текст, ошибки, логические значения) =СЧЁТЗ(A1:A5) 5 (все, кроме пустой строки)
СЧИТАТЬПУСТОТЫ Только пустые ячейки (включая "") =СЧИТАТЬПУСТОТЫ(A1:A5) 1 (только "")
ЕОШИБКА + СЧЁТЕСЛИ Ячейки с ошибками (#Н/Д, #ЗНАЧ! и др.) =СЧЁТЕСЛИ(A1:A5; "#Н/Д") 1

⚠️ Внимание: Функция СЧИТАТЬПУСТОТЫ считает пустыми ячейки с формулой, возвращающей "" (например, =ЕСЛИ(A1=0; ""; A1)). Чтобы отличить их от truly empty ячеек, используйте ЕПУСТО в массиве:

=СУММПРОИЗВ(--(ЕПУСТО(A1:A5)))

3. Подсчёт по условию: СЧЁТЕСЛИ и её скрытые возможности

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

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

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

  • 📌 Подсчёт ячеек с точным текстом: =СЧЁТЕСЛИ(B2:B100; "Да").
  • 📌 Числа больше 100: =СЧЁТЕСЛИ(C2:C100; ">100").
  • 📌 Текст, начинающийся на «А»: =СЧЁТЕСЛИ(A2:A100; "А*").
  • 📌 Даты позже 01.01.2023: =СЧЁТЕСЛИ(D2:D100; ">01.01.2023").

Критический нюанс: СЧЁТЕСЛИ нечувствительна к регистру. То есть =СЧЁТЕСЛИ(A1:A10; "да") посчитает и "Да", и "дА", и "ДА". Если важен регистр, используйте СУММПРОИЗВ с СОВПАД:

=СУММПРОИЗВ(--(СОВПАД(A1:A10; "Да")))
📊 Какой тип данных вы чаще всего подсчитываете в Excel?
Числа
Текст
Даты
Ошибки (#Н/Д и др.)
Другое

4. Множественные условия: СЧЁТЕСЛИМН vs БСЧЁТ (Excel 365)

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

=СЧЁТЕСЛИМН(B2:B100; "Москва"; C2:C100; ">01.01.2023"; C2:C100; "<31.12.2023")

В Excel 365 и Excel 2021 появилась более гибкая функция БСЧЁТ (Beta-version), которая поддерживает динамические массивы и работает быстрее на больших данных. Пример:

=БСЧЁТ(A2:A100; (A2:A100="Да")*(B2:B100>100))

⚠️ Внимание: СЧЁТЕСЛИМН требует, чтобы все диапазоны были одинакового размера. Если в формуле указать B2:B100 и C2:C50, она вернёт ошибку. Также она не работает с массивами — для этого нужен СУММПРОИЗВ.

☑️ Проверка перед использованием СЧЁТЕСЛИМН

Выполнено: 0 / 4

5. Подсчёт уникальных значений: ЧАСТОТА и УНИК (Excel 365)

Чтобы посчитать количество уникальных значений в диапазоне, в старых версиях Excel приходилось использовать комбинацию ЧАСТОТА + СУММ:

=СУММ(ЕСЛИ(ЧАСТОТА(A2:A100; A2:A100)>0; 1; 0))

Эта формула массивная — вводите её через Ctrl+Shift+Enter в версиях до Excel 365.

В Excel 365 всё проще — есть функция УНИК, которая возвращает список уникальных значений, а СЧЁТ подсчитывает их количество:

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

Если нужно посчитать уникальные значения с учётом условия, комбинируйте УНИК с ФИЛЬТР:

=СЧЁТ(УНИК(ФИЛЬТР(A2:A100; (B2:B100="Да"))))
Почему ЧАСТОТА возвращает лишние нули?

Функция ЧАСТОТА всегда возвращает массив, размер которого равен количеству элементов в первом аргументе. Лишние нули в конце — это "пустые" позиции для значений, которые не встретились ни разу. Чтобы их убрать, оберните формулу в ЕСЛИОШИБКА или используйте ИНДЕКС для обрезки массива.

6. Подсчёт с частичным совпадением: регулярные выражения и НАЙТИ

Иногда нужно посчитать ячейки, где текст содержит определённую подстроку (например, все email с доменом @gmail.com). Для этого используйте:

  • 🔍 СЧЁТЕСЛИ с подстановочными знаками: =СЧЁТЕСЛИ(A2:A100; "*@gmail.com").
  • 🔍 СУММПРОИЗВ + НАЙТИ (если нужен точный поиск без подстановочных знаков):
=СУММПРОИЗВ(--(НЕОШ(НАЙТИ("@gmail.com"; A2:A100))))

Для сложных шаблонов (например, поиск телефонных номеров в формате +7 (XXX) XXX-XX-XX) придётся использовать VBA или Power Query, так как стандартные функции Excel не поддерживают полноценные регулярные выражения.

7. Подсчёт в сводных таблицах: почему это лучше формул

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

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

Преимущества сводных таблиц перед формулами:

  • Мгновенный пересчёт при изменении данных.
  • 📊 Визуализация — можно добавить графики прямо в таблицу.
  • 🔍 Фильтрация по любому полю (например, показать только продажи за последний месяц).

⚠️ Внимание: Сводные таблицы не обновляются автоматически при добавлении новых строк в исходные данные. Чтобы обновить результаты, нажмите правой кнопкой на таблицу и выберите Обновить или используйте сочетание Alt + F5.

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

Как посчитать количество ячеек с ошибками (#Н/Д, #ЗНАЧ! и др.)?

Используйте комбинацию ЕОШИБКА + СУММПРОИЗВ:

=СУММПРОИЗВ(--(ЕОШИБКА(A1:A100)))

Если нужны ошибки конкретного типа (например, только #Н/Д), используйте СЧЁТЕСЛИ:

=СЧЁТЕСЛИ(A1:A100; "#Н/Д")
Почему СЧЁТЕСЛИ не считает ячейки с формулой, возвращающей текст?

Функция СЧЁТЕСЛИ учитывает отображаемое значение ячейки, а не её содержимое. Если формула возвращает текст (например, =ЕСЛИ(A1>10; "Да"; "Нет")), то СЧЁТЕСЛИ его посчитает. Проблемы возникают, если:

  • Формула возвращает "" (пустую строку) — используйте СЧЁТЗ.
  • В ячейке ошибка — используйте ЕОШИБКА.
Как посчитать количество цветных ячеек?

Стандартными функциями Excel это сделать невозможно. Варианты решения:

  1. Фильтр по цвету → скопировать отфильтрованные ячейки в новый столбец и посчитать их количество.
  2. VBA-скрипт (для продвинутых пользователей):
Function CountColoredCells(rng As Range, color As Range) As Long

Dim cl As Range

Dim count As Long

count = 0

For Each cl In rng

If cl.Interior.Color = color.Interior.Color Then

count = count + 1

End If

Next cl

CountColoredCells = count

End Function

Вызов: =CountColoredCells(A1:A100; B1), где B1 — ячейка с нужным цветом.

Можно ли посчитать количество ячеек, где текст написан в верхнем регистре?

Да, но только через формулу массива:

=СУММ(ЕСЛИ(A1:A100=ПРОПИСН(A1:A100); 1; 0))

В Excel 365 можно упростить:

=СУММ(--(A1:A100=ПРОПИСН(A1:A100)))

Эта формула сравнивает текст в ячейке с его версией в верхнем регистре и считает совпадения.

Как посчитать количество уникальных значений с учётом регистра?

В Excel 365 используйте комбинацию УНИК + СЧЁТ с приведением к одному регистру:

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

В старых версиях примените формулу массива:

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

Вводите через Ctrl+Shift+Enter.