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

Почему подсчёт данных в Excel — это не только про функцию СЧЁТ

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

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

Базовые функции для подсчёта: СЧЁТ, СЧЁТЗ и СЧЁТА

Начнём с трёх «китов», на которых держится 80% задач по подсчёту в Excel. Эти функции встроены во все версии программы, включая Excel Online и мобильные приложения, поэтому их знание обязательно для любого пользователя.

Функция СЧЁТ (=COUNT()) подсчитывает только ячейки с числовыми значениями. Она игнорирует текст, логические значения (ИСТИНА/ЛОЖЬ), ошибки и пустые ячейки. Пример:

=СЧЁТ(A1:A10)

Подсчитает количество чисел в диапазоне A1:A10, пропустив все остальные типы данных.

Функция СЧЁТЗ (=COUNTA()) работает противоположно — она считает все непустые ячейки, независимо от их типа. Это универсальный инструмент, если вам нужно узнать, сколько ячеек в диапазоне содержат хоть какие-то данные:

=СЧЁТЗ(A1:A10)

Функция СЧЁТА (=COUNTBLANK()) специализируется на подсчёте пустых ячеек. Полезна для контроля заполненности таблиц:

=СЧЁТА(A1:A10)
  • 📌 СЧЁТ — только числа (и даты, так как они хранятся как числа).
  • 📌 СЧЁТЗ — всё, кроме пустых ячеек.
  • 📌 СЧЁТА — только пустые ячейки.
⚠️ Внимание: Функция СЧЁТ не учитывает ячейки с формулами, которые возвращают текст (например, =ЕСЛИ(A1>10; "Да"; "Нет")). Для таких случаев используйте СЧЁТЗ.
📊 Какую функцию подсчёта вы используете чаще всего?
СЧЁТ
СЧЁТЗ
СЧЁТЕСЛИ
Другую

Подсчёт по условию: СЧЁТЕСЛИ и СЧЁТЕСЛИМН

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

Пример использования СЧЁТЕСЛИ для подсчёта ячеек со значением больше 50:

=СЧЁТЕСЛИ(A1:A10; ">50")

Функция СЧЁТЕСЛИМН позволяет комбинировать условия. Например, посчитать количество ячеек в диапазоне A1:A10, которые больше 50 и меньше 100:

=СЧЁТЕСЛИМН(A1:A10; ">50"; A1:A10; "<100")

Эти функции поддерживают подстановочные знаки:

  • 🔍 * — любой набор символов (например, "*ов" найдёт "Иванов", "Петров").
  • 🔍 ? — любой одиночный символ (например, "стр?ка" найдёт "строка", "строка").
  • 🔍 ~ — экранирование спецсимволов (например, "~*" найдёт ячейки со звёздочкой).
⚠️ Внимание: Если критерий в СЧЁТЕСЛИ — текстовая строка, её нужно брать в двойные кавычки. Например, =СЧЁТЕСЛИ(A1:A10; "Да"). Пропуск кавычек — самая частая ошибка новичков.
Функция Синтаксис Пример Результат
СЧЁТЕСЛИ =COUNTIF(диапазон; критерий) =СЧЁТЕСЛИ(B2:B10; "Да") Количество ячеек со словом "Да" в B2:B10
СЧЁТЕСЛИМН =COUNTIFS(диапазон1; критерий1; ...) =СЧЁТЕСЛИМН(A2:A10; ">100"; B2:B10; "Муж") Количество строк, где значение в A > 100 и в B стоит "Муж"
СЧЁТЕСЛИ с подстановочными знаками =COUNTIF(диапазон; "текст") =СЧЁТЕСЛИ(C2:C10; "ов") Количество фамилий с окончанием "-ов" (например, "Иванов", "Сидоров")

Убедиться, что критерий в кавычках (если текст)

Проверить регистр (Excel чувствителен к "Да" и "да")

Исключить пробелы в начале/конце критериев

Учесть, что даты нужно указывать как числа или в формате ">01.01.2023"-->

Подсчёт уникальных значений: 3 метода без дубликатов

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

Метод 1. Функция ЧАСТОТА + СЧЁТЕСЛИ

Создайте вспомогательный столбец с уникальными значениями (можно использовать УНИК в новых версиях Excel), затем примените:

=СУММ(--(ЧАСТОТА(диапазон_данных; диапазон_уникальных)>0))

Эта формула массива вернёт количество уникальных значений.

Метод 2. Функция УНИК (Excel 365 и 2021)

В последних версиях Excel появилась функция UNIQUE, которая упрощает задачу:

=СТРОКА(УНИК(диапазон))

Затем используйте СЧЁТЗ для подсчёта строк в результате.

Метод 3. Сводная таблица

Самый надёжный способ для больших данных:

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

⚠️ Внимание: Функция ЧАСТОТА требует ввода как формулы массива (в старых версиях Excel нажмите Ctrl+Shift+Enter). В Excel 365 это не нужно.
Как посчитать уникальные значения с условием?

Используйте комбинацию функций:

=СУММ(--(ЧАСТОТА(ЕСЛИ(условие; диапазон_данных); диапазон_данных)>0))

Например, чтобы посчитать уникальные города только для клиентов с суммой заказа > 1000:

=СУММ(--(ЧАСТОТА(ЕСЛИ(B2:B10>1000; A2:A10); A2:A10)>0))

Подсчёт цветных ячеек и данных с условным форматированием

Excel не предоставляет встроенной функции для подсчёта ячеек по цвету, но эту задачу можно решить с помощью VBA или обходных путей. Рассмотрим оба варианта.

Метод 1. Фильтрация по цвету (без VBA)

  1. Примените фильтр к диапазону (Данные → Фильтр).
  2. Нажмите на стрелку фильтра → Фильтр по цвету → выберите нужный цвет.
  3. Количество видимых строк после фильтрации — искомое значение.

Метод 2. Пользовательская функция на VBA

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

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте новый модуль (Insert → Module).
  3. Добавьте код:
    Function CountByColor(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

    CountByColor = count

    End Function

  4. Теперь в ячейке можно использовать =CountByColor(A1:A10; C1), где C1 — ячейка с образцом цвета.

Для подсчёта ячеек с условным форматированием используйте функцию ПОДСЧЁТВИДИМЫХ (=SUBTOTAL(103; диапазон)), если данные отфильтрованы по правилу форматирования.

Подсчёт в отфильтрованных данных: ПРОМЕЖУТОЧНЫЕ.ИТОГИ и СЧЁТВИДИМЫХ

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

Функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ (=SUBTOTAL()):

=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(103; A2:A100)

Аргумент 103 означает подсчёт непустых ячеек (аналог СЧЁТЗ для видимых строк). Другие полезные коды:

  • 🔢 2 — подсчёт числовых значений (аналог СЧЁТ).
  • 🔢 3 — подсчёт пустых ячеек (аналог СЧЁТА).
  • 🔢 9 — сумма видимых ячеек.

Функция СЧЁТВИДИМЫХ (=COUNTIFS + SUBTOTAL):

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

=СЧЁТЕСЛИ(диапазон; условие) - СУММПРОИЗВ(--(НЕ(ПОДТОТАЛ(103; СМЕЩ(диапазон;;;1)))); 1)

Эта формула вычитает из общего количества те ячейки, которые скрыты фильтром.

⚠️ Внимание: Функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ игнорирует строки, скрытые вручную (через "Скрыть строки"), но учитывает строки, скрытые фильтром. Чтобы посчитать все видимые строки, используйте ПРОМЕЖУТОЧНЫЕ.ИТОГИ(102; диапазон).

Продвинутые техники: формулы массивов и Power Query

Для сложных задач, где стандартные функции не справляются, на помощь приходят формулы массивов и инструмент Power Query. Рассмотрим несколько примеров.

Пример 1. Подсчёт ячеек с ошибками

Чтобы посчитать количество ячеек, содержащих ошибки (#ДЕЛ/0!, #ЗНАЧ! и т.д.), используйте формулу массива:

=СУММ(--(ЕОШИБКА(диапазон)))

В Excel 365 ввод как формулы массива не требуется.

Пример 2. Подсчёт по нескольким листам

Чтобы посчитать количество ячеек с определённым значением на нескольких листах, используйте 3D-ссылки:

=СЧЁТЕСЛИ(Лист1:Лист3!A1:A10; "Да")

Пример 3. Power Query для сложного анализа

Если данные хранятся в внешних источниках или требуют предварительной обработки:

  1. Импортируйте данные в Power Query (Данные → Получить данные).
  2. Примените фильтры и преобразования.
  3. Добавьте столбец с подсчётом (Добавить столбец → Пользовательский).
  4. Загрузите результат обратно в Excel.

Power Query особенно полезен для:

  • 📊 Подсчёта в сводных данных из нескольких файлов.
  • 📊 Анализа больших наборов данных (миллионы строк).
  • 📊 Автоматического обновления результатов при изменении источника.

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

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

1. Функция СЧЁТ игнорирует текстовые числа

Если в ячейке хранится число как текст (например, после импорта из CSV), СЧЁТ его не посчитает. Решение: преобразовать данные в числа с помощью ЗНАЧЕН или ТЕКСТВЧИСЛО.

2. Ошибка #ИМЯ? в СЧЁТЕСЛИ

Чаще всего возникает из-за:

  • 🚫 Отсутствия кавычек у текстового критерия.
  • 🚫 Опечаток в названии функции (например, СЧЁТЕСЛИМ вместо СЧЁТЕСЛИМН).
  • 🚫 Использования несуществующего диапазона.

3. Неправильный подсчёт дат

Excel хранит даты как числа, но функции вроде СЧЁТЕСЛИ могут вести себя неожиданно. Например, =СЧЁТЕСЛИ(A1:A10; ">01.01.2023") не сработает. Правильный вариант:

=СЧЁТЕСЛИ(A1:A10; ">="&ДАТА(2023;1;1))

4. Подсчёт скрытых строк

Если вы вручную скрыли строки (не фильтром), стандартные функции их учитывают. Используйте ПРОМЕЖУТОЧНЫЕ.ИТОГИ(103; ...) для игнорирования скрытых данных.

5. Ошибки в формулах массивов

В старых версиях Excel забывают нажимать Ctrl+Shift+Enter для ввода формулы массива. В результате формула возвращает только первое значение.

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

Функция СЧЁТЕСЛИ анализирует отображаемое значение ячейки, а не формулу. Если формула возвращает пустую строку (="") или ошибку, ячейка не будет посчитана. Чтобы учесть такие случаи, используйте СЧЁТЗ или проверяйте формулы на ошибки.

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

Как посчитать количество ячеек с определённым цветом заливки без VBA?

Без VBA это можно сделать только вручную: примените фильтр по цвету (Данные → Фильтр → Фильтр по цвету), затем посчитайте видимые строки с помощью ПРОМЕЖУТОЧНЫЕ.ИТОГИ(103; диапазон). Для автоматизации потребуется макрос.

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

Проверьте:

  1. Совпадают ли диапазоны по размеру (например, A1:A10 и B1:B9 дадут ошибку).
  2. Правильно ли указаны критерии (текст в кавычках, числа без кавычек).
  3. Нет ли скрытых символов (пробелов, неразрывных пробелов) в данных.

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

Используйте комбинацию:

=СУММ(--(ЧАСТОТА(ЕСЛИ(ПОДТОТАЛ(103; СМЕЩ(диапазон;;;1)); диапазон); диапазон)>0))

Эта формула массива учитывает только видимые ячейки.

Можно ли посчитать количество ячеек с формулами (независимо от результата)?

Да, но только с помощью VBA. Стандартных функций для этого нет. Пример кода:

Function CountFormulas(rng As Range) As Long

Dim cell As Range

For Each cell In rng

If cell.HasFormula Then CountFormulas = CountFormulas + 1

Next cell

End Function

Затем используйте =CountFormulas(A1:A10).

Как посчитать количество ячеек, содержащих любую из нескольких подстрок?

Используйте СЧЁТЕСЛИМН с подстановочными знаками:

=СЧЁТЕСЛИМН(A1:A10; "подстрока1"; A1:A10; "подстрока2")

Или для более чем двух подстрок:

=СУММ(--(НЕ(ЕОШ(ПОИСК({"подстрока1";"подстрока2";"подстрока3"}; A1:A10)))))

Это формула массива.