Подсчёт данных в Microsoft Excel — одна из самых востребованных операций, с которой сталкиваются пользователи любого уровня. Нужно ли узнать количество заполненных строк в отчёте, посчитать количество уникальных значений или определить число ячеек с определённым условием? Для каждой задачи в Excel есть своё решение. Однако многие до сих пор используют ручной подсчёт или создают лишние столбцы с промежуточными вычислениями, хотя программа предлагает десятки встроенных функций для автоматизации этого процесса.
В этой статье мы разберём все основные способы подсчёта количества в Excel — от простейших функций вроде COUNT до сложных комбинаций с SUMPRODUCT и FILTER. Вы узнаете, как считать только числовые значения, игнорировать пустые ячейки, применять несколько условий одновременно и даже подсчитывать данные по цвету. А для тех, кто работает с большими массивами, мы подготовили оптимизированные формулы, которые ускорят обработку данных в разы.
Материал будет полезен как новичкам, так и опытным пользователям. Начинающие найдут здесь пошаговые инструкции с картинками и примерами, а продвинутые — редкие приёмы и комбинации функций, которые экономят время. Все формулы протестированы в последних версиях Excel 2021 и Microsoft 365, но большинство из них работает и в старых редакциях (начиная с Excel 2010).
1. Базовые функции для подсчёта: COUNT, COUNTA, COUNTBLANK
Начнём с трёх основных функций, которые покрывают 80% задач по подсчёту данных. Они входят в стандартный набор Excel и работают во всех версиях программы.
Функция COUNT подсчитывает количество ячеек с числовыми значениями, включая даты, время и формулы, которые возвращают числа. Она игнорирует текст, логические значения (ИСТИНА/ЛОЖЬ) и пустые ячейки.
=COUNT(значение1; [значение2];..)
Пример: =COUNT(A2:A100) вернёт количество чисел в диапазоне A2:A100.
Функция COUNTA (от англ. "count all") считает все непустые ячейки, независимо от типа данных. Она учитывает текст, числа, ошибки (например, #ДЕЛ/0!), но игнорирует действительно пустые ячейки.
=COUNTA(значение1; [значение2];..)
Пример: =COUNTA(B2:B50) покажет, сколько ячеек в диапазоне содержат хоть какие-то данные.
Функция COUNTBLANK делает обратное — подсчитывает пустые ячейки, включая те, что содержат формулы, возвращающие пустую строку ("").
=COUNTBLANK(диапазон)
Пример: =COUNTBLANK(C2:C20) вернёт количество пустых ячеек в столбце C.
Например, если в ячейке формула =ЕСЛИ(A1>10; ""; "мало"), то:
- 🔢
COUNTпроигнорирует её (нет числового результата) - 📝
COUNTAпосчитает (есть текстовый результат) - ⬜
COUNTBLANKпроигнорирует (результат не пуст)
2. Подсчёт по условию: COUNTIF и COUNTIFS
Когда нужно посчитать ячейки, соответствующие определённому критерию, на помощь приходят условные функции подсчёта. Они позволяют фильтровать данные прямо в формуле без создания дополнительных столбцов.
Функция COUNTIF подсчитывает количество ячеек, которые удовлетворяют одному условию. Синтаксис:
=COUNTIF(диапазон; условие)
Примеры:
- 📌
=COUNTIF(A2:A100; ">50")— количество чисел больше 50 - 📌
=COUNTIF(B2:B50; "Да")— количество ячеек с текстом "Да" - 📌
=COUNTIF(C2:C20; "<>"&"")— количество непустых ячеек (аналогCOUNTA)
Функция COUNTIFS расширяет возможности, позволяя задавать несколько условий одновременно. Синтаксис:
=COUNTIFS(диапазон1; условие1; [диапазон2; условие2];..)
Пример: =COUNTIFS(A2:A100; ">50"; B2:B100; "Муж") посчитает количество записей, где значение в столбце A больше 50, а в столбце B указано "Муж".
Обратите внимание на особенности работы с текстом:
- 🔤 Условия с текстом чувствительны к регистру: "Да" ≠ "да" ≠ "ДА"
- 🔤 Для поиска частичного совпадения используйте подстановочные знаки:
"текст"или"текст*" - 🔤 Чтобы найти ячейки с ошибками, используйте
COUNTIF(диапазон; "#Н/Д")
Как посчитать ячейки с ошибками?
Используйте функцию =SUMPRODUCT(--ISERROR(диапазон)). Она вернёт количество ячеек с любыми ошибками (#ДЕЛ/0!, #ЗНАЧ!, #Н/Д и др.).
Критичный нюанс: в Excel 2019 и старше COUNTIFS поддерживает до 127 пар "диапазон-условие", а в Excel 2007-2016 — только до 29. Превышение лимита приводит к ошибке #ЗНАЧ!.
3. Продвинутый подсчёт: SUMPRODUCT и массивы
Для сложных задач, где COUNTIFS не справляется (например, при работе с несколькими листами или динамическими диапазонами), приходит на помощь функция SUMPRODUCT. Она позволяет выполнять операции с массивами данных и часто используется для подсчёта с множественными критериями.
Базовый синтаксис для подсчёта:
=SUMPRODUCT(--(условие1); --(условие2);..)
Двойной минус (--) преобразует логические значения (ИСТИНА/ЛОЖЬ) в 1 и 0 соответственно.
Примеры:
- 📊
=SUMPRODUCT(--(A2:A100>50))— аналогCOUNTIF(A2:A100; ">50") - 📊
=SUMPRODUCT(--(A2:A100="Да"); --(B2:B100="Муж"))— подсчёт по двум столбцам - 📊
=SUMPRODUCT(--(LEN(A2:A100)>0))— количество непустых ячеек (аналогCOUNTA)
Преимущества SUMPRODUCT перед COUNTIFS:
- ✅ Работает с несоседними диапазонами
- ✅ Поддерживает операции с массивами (например, умножение диапазонов)
- ✅ Может использоваться для сложных логических проверок
Однако есть и недостатки:
⚠️ Внимание:SUMPRODUCTпересчитывает все данные при каждом изменении листа, что может замедлить работу с большими массивами (10 000+ строк). Для оптимизации используйтеCOUNTIFSтам, где это возможно.
Нужно посчитать с несколькими ИЛИ-условиями|Работаете с несоседними диапазонами|Требуется умножать значения перед подсчётом|Нужно применить сложную логику (например, регулярные выражения через вспомогательные функции)-->
4. Подсчёт уникальных значений и дубликатов
Частая задача — посчитать количество уникальных значений в диапазоне или, наоборот, найти дубликаты. Для этого в Excel есть специализированные функции и приёмы.
Способы подсчёта уникальных значений:
- 🔍 В Excel 365/2021:
=UNIQUE(диапазон)+ROWS:=ROWS(UNIQUE(A2:A100)) - 🔍 В старых версиях: комбинация
SUMPRODUCT+COUNTIF:=SUMPRODUCT(1/COUNTIF(A2:A100; A2:A100))⚠️ Внимание: эта формула должна вводиться как формула массива (в старых версиях —
Ctrl+Shift+Enter). В Excel 365 работает без этого.
Для подсчёта дубликатов используйте:
=COUNTIF(диапазон; критерий) - COUNTIF(уникальные_значения; критерий)
Или более универсальный вариант:
=SUMPRODUCT((COUNTIF(A2:A100; A2:A100)>1)*1)
Пример из практики: если у вас список email-адресов в столбце B, и нужно посчитать количество уникальных доменов (все, что после @), используйте:
=ROWS(UNIQUE(RIGHT(B2:B100; LEN(B2:B100)-FIND("@"; B2:B100))))
Эта формула извлекает доменную часть из каждого email и считает уникальные значения.
5. Подсчёт по цвету ячейки или шрифта
Стандартные функции Excel не умеют напрямую подсчитывать ячейки по цвету, но эту задачу можно решить с помощью VBA-макроса или фильтрации. Рассмотрим оба способа.
Способ 1: Фильтрация по цвету (без VBA)
- Выделите диапазон данных
- Перейдите на вкладку
Главная → Сортировка и фильтр → Фильтр - Нажмите на стрелку фильтра в столбце и выберите
Фильтр по цвету → Выбрать цвет ячейки - Скопируйте отфильтрованные данные в новый диапазон и используйте
COUNTA
Способ 2: VBA-функция (для продвинутых)
Создайте пользовательскую функцию для подсчёта ячеек по цвету фона:
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
Используйте её в ячейке как: =CountByColor(A2:A100; B2), где B2 — ячейка с образцом цвета.
Для подсчёта по цвету шрифта замените Interior.Color на Font.Color.
Ограничения:
- 🎨 VBA-функции работают только в файлах с расширением
.xlsm(с поддержкой макросов) - 🎨 Цвета, заданные условным форматированием, не учитываются
- 🎨 Функция чувствительна к оттенкам (RGB-коды должны полностью совпадать)
6. Динамические диапазоны и подсчёт в таблицах Excel
При работе с умными таблицами (Ctrl+T) или динамическими диапазонами (например, A2:A вместо A2:A100) формулы подсчёта приобретают дополнительные возможности. Рассмотрим ключевые приёмы.
Подсчёт в умных таблицах
Если ваш диапазон оформлен как таблица (Вставка → Таблица), используйте структурированные ссылки. Например, для подсчёта количества строк в таблице с именем Таблица1:
=ROWS(Таблица1)
Для подсчёта непустых ячеек в столбце Возраст:
=COUNTA(Таблица1[Возраст])
Динамические диапазоны
Чтобы формула автоматически расширялась при добавлении новых строк, используйте:
- 📏
=COUNT(A:A)— подсчёт всех чисел в столбцеA(включая заголовок) - 📏
=COUNTA(2:2)— подсчёт непустых ячеек во всей второй строке - 📏
=COUNTIF(Таблица1[Столбец1]; ">100")— динамический подсчёт по условию
Комбинация с другими функциями
Для сложных задач комбинируйте подсчёт с функциями вроде INDEX, MATCH или FILTER (в Excel 365). Пример: подсчёт количества строк, где значение в столбце A больше 50, а в столбце B содержится "Да":
=ROWS(FILTER(Таблица1; (Таблица1[Столбец1]>50)*(Таблица1[Столбец2]="Да")))
Преимущества динамических диапазонов:
- 🔄 Формулы автоматически обновляются при добавлении/удалении данных
- 🔄 Упрощается чтение формул (имена столбцов вместо адресов ячеек)
- 🔄 Легче поддерживать большие файлы
7. Распространённые ошибки и как их избежать
Даже опытные пользователи Excel иногда сталкиваются с ошибками при подсчёте данных. Разберём типичные проблемы и их решения.
Ошибка #1: Неучтённые скрытые символы
Функции вроде COUNTA или COUNTIF могут давать неожиданные результаты, если в ячейках есть невидимые символы (пробелы, переводы строк, неразрывные пробелы). Чтобы очистить данные:
- 🧹 Используйте
=TRIM(A1)для удаления лишних пробелов - 🧹 Примените
=CLEAN(A1)для удаления непечатаемых символов - 🧹 Для замены неразрывных пробелов:
=SUBSTITUTE(A1; CHAR(160); " ")
Ошибка #2: Несоответствие типов данных
COUNT игнорирует текстовые числа (например, "100" вместо 100). Чтобы преобразовать текст в числа:
=VALUE(A1)
Или для всего столбца:
=--A1 (двойной минус преобразует текст в число)
Ошибка #3: Ошибки в диапазонах
Если формула возвращает #ЗНАЧ!, проверьте:
- 🔍 Совпадает ли размер диапазонов в
COUNTIFS(должны быть одинаковыми) - 🔍 Нет ли ссылок на удалённые листы или книги
- 🔍 Не превышен ли лимит условий (127 в новых версиях, 29 в старых)
Ошибка #4: Пустые ячейки с формулами
Ячейки с формулами, возвращающими пустую строку (=""), воспринимаются COUNTBLANK как непустые. Чтобы посчитать действительно пустые ячейки:
=SUMPRODUCT(--(A2:A100=""); --(LEN(A2:A100)=0))
Ошибка #5: Кэширование данных
Иногда Excel не обновляет результаты формул автоматически. Чтобы принудительно пересчитать:
- 🔄 Нажмите
F9(пересчёт всех формул на листе) - 🔄 Или
Ctrl+Alt+F9(пересчёт всех формул во всей книге)
Как ускорить пересчёт больших файлов?
1. Переведите формулы в ручной режим: Формулы → Параметры вычислений → Вручную
2. Используйте COUNTIFS вместо SUMPRODUCT где возможно
3. Разбейте большой файл на несколько маленьких
4. Избегайте летучих функций (например, SEARCH, INDIRECT)
FAQ: Частые вопросы по подсчёту в Excel
❓ Как посчитать количество ячеек с ошибками (#Н/Д, #ДЕЛ/0! и др.)?
Используйте формулу массива:
=SUMPRODUCT(--ISERROR(A2:A100))
В Excel 365 можно проще:
=COUNTIF(A2:A100; "#Н/Д") + COUNTIF(A2:A100; "#ДЕЛ/0!") +..
Но первый способ надёжнее, так как учитывает все типы ошибок автоматически.
❓ Почему COUNTIF не считает ячейки с датами?
COUNTIF воспринимает даты как числа (количество дней с 1 января 1900 года). Чтобы посчитать даты в определённом диапазоне, используйте:
=COUNTIFS(A2:A100; ">="&ДАТА(2026;1;1); A2:A100; "<="&ДАТА(2026;12;31))
Или для конкретной даты:
=COUNTIF(A2:A100; ДАТА(2026;5;15))
❓ Как посчитать количество ячеек, содержащих любую из нескольких фраз?
Используйте SUMPRODUCT с COUNTIF:
=SUMPRODUCT(COUNTIF(A2:A100; {"текст1";"текст2";"текст3"}))
Или в Excel 365:
=COUNTIFS(A2:A100; "текст1") + COUNTIFS(A2:A100; "текст2") + COUNTIFS(A2:A100; "текст3")
❓ Можно ли посчитать количество ячеек с условным форматированием?
Нет, стандартными функциями это сделать нельзя. Альтернативы:
- 🎨 Используйте VBA-макрос для анализа условного форматирования
- 🎨 Создайте вспомогательный столбец с формулой, которая проверяет условие форматирования, и считайте его
Пример VBA-функции для подсчёта ячеек с красным фоном (условным или ручным):
Function CountRedCells(rng As Range) As Long
Dim cl As Range, count As Long
count = 0
For Each cl In rng
If cl.DisplayFormat.Interior.Color = RGB(255, 0, 0) Then count = count + 1
Next cl
CountRedCells = count
End Function
❓ Как посчитать количество уникальных значений с учётом регистра?
Стандартные функции Excel нечувствительны к регистру. Для учёта регистра используйте VBA или комбинацию SUMPRODUCT с EXACT:
=SUMPRODUCT(--(MMULT(--(EXACT(A2:A100; TRANSPOSE(A2:A100))); SIGN(ROW(A2:A100)-TRANSPOSE(ROW(A2:A100))))=0))
Эта формула должна вводиться как формула массива (Ctrl+Shift+Enter в старых версиях).