Работа с данными в Microsoft Excel часто требует анализа заполненности таблиц. Нужно ли вам подсчитать количество ответивших в опросе, заполненные строки в отчёте или просто проверить, сколько ячеек содержат данные — без точного подсчёта не обойтись. Казалось бы, задача элементарная, но даже опытные пользователи иногда теряются, когда нужно учесть нюансы: игнорировать формулы, учитывать только текст или исключить ошибки.
В этой статье вы найдёте 7 проверенных способов подсчёта заполненных ячеек — от базовых функций до продвинутых комбинаций. Мы разберём, как работает каждая формула, где её применять, и какие ловушки поджидают новичков. А ещё вы узнаете, почему СЧЁТЗ и СЧЁТЕСЛИ иногда дают разные результаты и как обойти это ограничение.
Если вы никогда не сталкивались с подобными вычислениями, начните с первых двух методов — они покрывают 90% задач. Для сложных случаев (например, подсчёт ячеек с определённым форматом или игнорирование скрытых строк) пригодятся продвинутые приёмы из последних разделов. Не забудьте проверить себя с помощью нашего опроса в середине статьи!
1. Функция СЧЁТЗ: универсальный способ подсчёта непустых ячеек
Функция СЧЁТЗ (англ. COUNTA) — самый простой и надёжный инструмент для подсчёта ячеек, содержащих любые данные. Она учитывает текст, числа, даты, логические значения (ИСТИНА/ЛОЖЬ), ошибки (#ДЕЛ/0!) и даже формулы, возвращающие пустую строку (""). Единственное, что она игнорирует — это действительно пустые ячейки.
Синтаксис функции предельно лаконичен:
=СЧЁТЗ(значение1; [значение2]; ...)
Где значение1 — это диапазон ячеек или отдельная ячейка. Можно указывать до 255 аргументов.
Примеры использования:
- 📌 Подсчёт всех заполненных ячеек в столбце
A:=СЧЁТЗ(A:A) - 📌 Подсчёт в диапазоне
A1:B10:=СЧЁТЗ(A1:B10) - 📌 Подсчёт в несмежных диапазонах:
=СЧЁТЗ(A1:A10; C1:C10)
Важный нюанс: СЧЁТЗ считает ячейки с формулами, возвращающими пустую строку (например, =ЕСЛИ(A1=0;"";"Да") при A1=0), как заполненные! Если вам нужно игнорировать такие случаи, используйте методы из раздела 4.
2. СЧЁТЕСЛИ для избирательного подсчёта
Когда нужно посчитать не просто заполненные ячейки, а те, что содержат определённые данные, на помощь приходит функция СЧЁТЕСЛИ (англ. COUNTIF). Она позволяет задать критерий отбора — например, подсчитать только ячейки с текстом, числами больше 100 или датами в конкретном диапазоне.
Синтаксис:
=СЧЁТЕСЛИ(диапазон; критерий)
Где:
диапазон— область ячеек для анализа (например,A1:A100)критерий— условие, по которому будет вестись подсчёт (например,50","Да","*"для любого текста)
Популярные примеры:
| Задача | Формула | Пояснение |
|---|---|---|
| Подсчёт ячеек с любым текстом | =СЧЁТЕСЛИ(A1:A10; "") | Звёздочка () — шаблон для любого текста |
| Подсчёт чисел > 100 | =СЧЁТЕСЛИ(B1:B50; ">100") | Критерий можно записывать как строку |
| Подсчёт ячеек с ошибками | =СЧЁТЕСЛИ(C1:C20; "#ДЕЛ/0!") | Указываем конкретный тип ошибки |
| Подсчёт непустых ячеек (альтернатива СЧЁТЗ) | =СЧЁТЕСЛИ(A1:A10; "<>") | Критерий <> означает "не пусто" |
⚠️
Внимание: Функция СЧЁТЕСЛИ не различает регистр текста, но чувствительна к формату ячеек. Например, если в ячейке число отформатировано как текст, оно не попадёт в подсчёт по критерию50"(только по"*").
3. Подсчёт заполненных ячеек в фильтрованных данных
Если ваша таблица отфильтрована (например, с помощью Автофильтра или Расширенного фильтра), стандартные функции СЧЁТЗ и СЧЁТЕСЛИ вернут количество ячеек в исходном диапазоне, а не в видимом. Чтобы посчитать только отображаемые строки, используйте функцию ПРОМЕЖУТОЧНЫЕ.ИТОГИ (англ. SUBTOTAL).
Синтаксис:
=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(номер_функции; диапазон)
Для подсчёта непустых ячеек укажите номер_функции = 3 (аналог СЧЁТЗ):
=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3; A1:A100)
Пример работы:
- 🔹 Исходный диапазон
A1:A10содержит 5 заполненных ячеек. - 🔹 После фильтрации осталось 3 видимые строки с данными.
- 🔹
=СЧЁТЗ(A1:A10)вернёт 5 (все ячейки). - 🔹
=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3; A1:A10)вернёт 3 (только видимые).
Функция специально разработана для работы с фильтрами. Она анализирует свойство ячеек Почему ПРОМЕЖУТОЧНЫЕ.ИТОГИ игнорирует скрытые строки?
Hidden и пропускает те, что скрыты вручную или через фильтр. Это единственная функция в Excel, которая корректно работает с отфильтрованными данными без VBA.
4. Продвинутый метод: игнорируем формулы с пустым результатом
Как мы упоминали ранее, СЧЁТЗ считает ячейки с формулами, возвращающими пустую строку (""), как заполненные. Если вам нужно посчитать только ячейки с реальными данными (исключая такие формулы), используйте комбинацию функций СУММПРОИЗВ и ЕПУСТО:
=СУММПРОИЗВ(--НЕ(ЕПУСТО(диапазон)))
Разберём, как это работает:
ЕПУСТО(диапазон)возвращает массивИСТИНА/ЛОЖЬ, гдеИСТИНА— пустая ячейка.НЕ(ЕПУСТО(...))инвертирует значения:ЛОЖЬдля пустых ячеек,ИСТИНА— для заполненных.--преобразуетИСТИНА/ЛОЖЬв1/0.СУММПРОИЗВсуммирует единицы, давая итоговый подсчёт.
⚠️
Внимание: Эта формула требует ввода как формула массива в старых версиях Excel (до 2019). В Excel 365 и 2021 она работает как обычная формула. Чтобы ввести её в старых версиях, завершите ввод нажатием Ctrl+Shift+Enter.
☑️ Проверка корректности подсчёта
5. Подсчёт заполненных ячеек по цвету (с VBA)
Стандартные функции Excel не умеют подсчитывать ячейки по цвету заливки или шрифта. Для этой задачи потребуется макрос на VBA. Ниже приведён код, который считает количество ячеек с указанным цветом фона в выделенном диапазоне:
Function CountByColor(rng As Range, color As Range) As Long
Dim cl As Range
Dim count As Long
Dim targetColor As Long
targetColor = color.Interior.Color
count = 0
For Each cl In rng
If cl.Interior.Color = targetColor Then
count = count + 1
End If
Next cl
CountByColor = count
End Function
Как использовать:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте код в модуль (меню
Insert → Module). - Вернитесь в Excel и используйте функцию как обычную:
=CountByColor(A1:A10; B1), гдеB1— ячейка с образцом цвета.
🔹 Альтернатива без VBA: Если макросы отключены, можно использовать Условное форматирование + Фильтр по цвету, а затем применить ПРОМЕЖУТОЧНЫЕ.ИТОГИ (раздел 3).
6. Подсчёт заполненных ячеек в сводных таблицах
Сводные таблицы в Excel автоматически подсчитывают количество записей по каждому критерию, но иногда требуется отдельный подсчёт заполненных ячеек в исходных данных. Вот как это сделать:
Допустим, у вас есть сводная таблица на основе диапазона A1:B100, и вы хотите посчитать, сколько ячеек в столбце B содержат данные. Добавьте в сводную таблицу вычисляемое поле:
- Щёлкните правой кнопкой по сводной таблице →
Вычисляемое поле. - В поле
ИмявведитеЗаполненные_ячейки_B. - В поле
Формулавведите:=ЕСЛИ(ИНДЕКС(Лист1!$B:$B; ПОИСКПОЗ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(АДРЕС(СТРОКА();1);"1";"");"$";""); Лист1!$A:$A; 0))<>""; 1; 0) - Нажмите
Добавить→ОК.
⚠️
Внимание: Формула в вычисляемом поле зависит от структуры вашей таблицы. Если столбец A содержит повторяющиеся значения, используйте другой уникальный идентификатор (например, добавьте вспомогательный столбец с номерами строк).
7. Быстрые клавиши и альтернативные методы
Если вам нужно просто узнать количество заполненных ячеек без формул, воспользуйтесь встроенными инструментами Excel:
- 🔍 Строка состояния: Выделите диапазон — в правом нижнем углу окна Excel отобразится количество заполненных ячеек (рядом с
СреднееиСумма). - 🔍 Поиск и замена: Нажмите
Ctrl+F, в поле поиска введите*(звёздочка), затем нажмитеНайти все. Внизу отобразится количество найденных ячеек. - 🔍 Фильтр: Примените фильтр к столбцу, снимите галочку с
(Пустые)— в строке состояния появится количество непустых строк.
FAQ: Ответы на частые вопросы
Почему СЧЁТЗ считает ячейки с формулой =ЕСЛИ(A1=0;"";"Да") как заполненные?
Функция СЧЁТЗ анализирует результат вычисления формулы, а не её визуальное отображение. Пустая строка ("") — это текстовый результат, поэтому ячейка считается заполненной. Чтобы исключить такие случаи, используйте метод из раздела 4.
Можно ли посчитать заполненные ячейки в Google Таблицах?
Да, в Google Sheets работают те же функции:
=COUNTA(A1:A10)— аналог СЧЁТЗ.=COUNTIF(A1:A10; "<>")— аналог СЧЁТЕСЛИ для непустых ячеек.=SUBTOTAL(3; A1:A10)— для фильтрованных данных.
Отличие только в названиях функций на английском.
Как посчитать заполненные ячейки в диапазоне с объединёнными ячейками?
Объединённые ячейки (Merge Cells) считаются как одна ячейка. Если в объединённом блоке есть данные, СЧЁТЗ учтёт его как одну заполненную ячейку. Чтобы разделить объединённые ячейки перед подсчётом:
- Выделите диапазон.
- Перейдите на вкладку
Главная→Объединить и центрировать(кнопка будет подсвечена). - Нажмите на стрелку рядом с кнопкой и выберите
Отменить объединение ячеек.
Почему ПРОМЕЖУТОЧНЫЕ.ИТОГИ возвращает 0 для отфильтрованного диапазона?
Это происходит, если:
- В диапазоне нет видимых строк (все скрыты фильтром).
- Формула введена как формула массива в старых версиях Excel (удалите её и введите заново без
Ctrl+Shift+Enter). - Диапазон содержит структурированные ссылки на таблицу (например,
Таблица1[Столбец1]). Замените их на обычные ссылки (A1:A10).
Можно ли посчитать заполненные ячейки в защищённом листе?
Да, но с ограничениями:
- 🔹 Формулы (СЧЁТЗ, СЧЁТЕСЛИ) будут работать, если диапазон не заблокирован для чтения.
- 🔹 VBA-макросы не выполнятся, если лист защищён без разрешения на использование макросов.
- 🔹 Строка состояния и поиск (
Ctrl+F) работают всегда.
Чтобы разблокировать диапазон для формул: Рецензирование → Разрешить изменение диапазонов → добавьте нужный диапазон и разрешите использование формул.