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

Работа с большими таблицами в Microsoft Excel часто требует анализа заполненных данных. Один из самых востребованных вопросов — как подсчитать количество непустых ячеек в диапазоне. Эта задача возникает при инвентаризации, обработке анкет, анализе продаж или проверке заполненности отчетов. Казалось бы, простая операция, но в Excel для нее существует сразу несколько методов — от элементарных до продвинутых.

Многие пользователи ошибочно считают, что достаточно просто выделить диапазон и посмотреть количество ячеек в строке состояния. Однако этот метод учитывает все ячейки, включая пустые. А что если нужно посчитать только те, что содержат текст, числа, формулы или даже ошибки? Здесь уже понадобятся специальные функции. В этой статье мы разберем все возможные способы — от базовых до малоизвестных приемов для опытных пользователей.

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

📊 Как часто вы работаете с большими таблицами в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

1. Базовый метод: функция СЧЁТЗ

Начнем с самого простого и универсального способа — функции СЧЁТЗ (англ. COUNTA). Она подсчитывает все непустые ячейки в указанном диапазоне, независимо от типа данных: числа, текст, логические значения, ошибки или даже формулы, возвращающие пустую строку "".

Формат функции предельно прост:

=СЧЁТЗ(диапазон)

Например, чтобы посчитать заполненные ячейки в столбце A с 1 по 100 строку, используйте:

=СЧЁТЗ(A1:A100)

Плюсы метода:

  • 🔹 Простота — достаточно указать один аргумент
  • 🔹 Работает во всех версиях Excel (включая Excel 2003)
  • 🔹 Учитывает ячейки с формулами, даже если они возвращают пустую строку

Минусы:

  • ⚠️ Не различает типы данных (текст/числа/ошибки)
  • ⚠️ Считает ячейки с формулой ="" как непустые
⚠️ Внимание: Если в диапазоне есть ячейки с формулой =НД (англ. #N/A), функция СЧЁТЗ посчитает их как непустые. Чтобы исключить ошибки, используйте комбинацию с ЕОШИБКА.

2. Альтернатива: функция СЧИТАТЬПУСТОТЫ

Иногда удобнее подсчитать пустые ячейки, а затем вычесть их из общего количества. Для этого предназначена функция СЧИТАТЬПУСТОТЫ (англ. COUNTBLANK). Ее синтаксис аналогичен:

=СЧИТАТЬПУСТОТЫ(диапазон)

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

=СЧЁТ(диапазон) - СЧИТАТЬПУСТОТЫ(диапазон)

где СЧЁТ возвращает общее число ячеек в диапазоне.

🔹 Пример: Подсчет заполненных ячеек в диапазоне B2:B50:

=СТРОКА(B50)-СТРОКА(B2)+1 - СЧИТАТЬПУСТОТЫ(B2:B50)

Когда этот метод удобнее:

  • 📊 Когда нужно отдельно анализировать пустые ячейки
  • 📊 Если требуется визуально выделить пустые строки перед подсчетом
⚠️ Внимание: Функция СЧИТАТЬПУСТОТЫ считает пустыми только ячейки без любых данных, включая формулы. Ячейка с формулой ="" или =НД будет воспринята как непустая!
Почему СЧИТАТЬПУСТОТЫ может давать неточные результаты?

Функция СЧИТАТЬПУСТОТЫ учитывает только ячейки, которые визуально пусты. Однако в Excel"пустота" бывает разной:

- Истинно пустая ячейка (никогда не редактировалась)

- Ячейка с удаленным содержимым (сохраняет формат)

- Ячейка с формулой, возвращающей пустую строку =""

- Ячейка с ошибкой #Н/Д или #ЗНАЧ!

Функция проигнорирует только первый случай. Для точного анализа комбинируйте СЧИТАТЬПУСТОТЫ с другими методами, например, ЕПУСТО или ДЛСТР.

3. Продвинутый подсчет: комбинация функций

Когда стандартные функции не справляются, на помощь приходят комбинированные формулы. Рассмотрим триные задачи и их решения:

🔹 Задача 1: Подсчитать только ячейки с текстом (исключить числа и даты).

Используйте формулу массива (вводится через Ctrl+Shift+Enter в старых версиях Excel):

=СУММ(--(ЕОШ(ПОИСК("?";A1:A100))))

Функция ПОИСК ищет любой символ ("?"), а ЕОШ проверяет наличие текста.

🔹 Задача 2: Подсчитать ячейки с формулами (даже если они возвращают пустую строку).

Этот трюк требует дополнительного столбца с функцией ЕПУСТО:

=ЕСЛИ(ЕПУСТО(ФОРМУЛТЕКСТ(A1));0;1)

Затем просуммируйте вспомогательный столбец.

🔹 Задача 3: Игнорировать ячейки с ошибками (#Н/Д, #ДЕЛ/0!).

Комбинация с ЕОШИБКА:

=СЧЁТЗ(A1:A100) - СЧЁТЕСЛИ(A1:A100;"#Н/Д")
Тип данных Формула Пример
Только числа =СЧЁТ(A1:A100) Подсчитывает 1, 3.14, но игнорирует "текст"
Только текст =СУММ(--(ЕТЕКСТ(A1:A100))) Подсчитывает "Привет", игнорирует 123
Ячейки с формулами =СУММ(--(ЕПУСТО(ФОРМУЛТЕКСТ(A1:A100))=ЛОЖЬ)) Подсчитывает =СУММ(B1:B10), даже если результат пуст
Игнорировать ошибки =СЧЁТЕСЛИ(A1:A100;"<>#Н/Д") Исключает ячейки с #Н/Д, #ЗНАЧ! и др.

1. Убедитесь, что диапазон не содержит скрытых символов (пробелов, табуляций)

2. Для формул массива в старых версиях Excel используйте Ctrl+Shift+Enter

3. Проверьте региональные настройки (разделители аргументов — запятая или точка с запятой)

4. Тестируйте формулу на небольшом диапазоне перед применением ко всей таблице

-->

4. Подсчет с учетом условий: СЧЁТЕСЛИ и СЧЁТЕСЛИМН

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

🔹 Пример 1: Подсчет ячеек, содержащих текст"Да":

=СЧЁТЕСЛИ(A1:A100;"Да")

🔹 Пример 2: Подсчет числовых ячеек больше 100:

=СЧЁТЕСЛИ(A1:A100;">100")

🔹 Пример 3: Подсчет непустых ячеек в диапазоне, где значения больше 0 и меньше 1000 (используем СЧЁТЕСЛИМН):

=СЧЁТЕСЛИМН(A1:A100;">0"; A1:A100;"<1000")

⚠️ Важный нюанс: Функции СЧЁТЕСЛИ и СЧЁТЕСЛИМН не учитывают пустые ячейки автоматически. Чтобы подсчитать все непустые ячейки с условием, комбинируйте их с СЧЁТЗ:

=СЧЁТЗ(A1:A100) - СЧЁТЕСЛИ(A1:A100;"<>условие")

💡 Полезный совет: Для подсчета ячеек, не равных определенному значению, используйте оператор <>:

=СЧЁТЕСЛИ(A1:A100;"<>Нет")
=СЧЁТЕСЛИ(A1:A100;"*")

Звездочка (*) — это подстановочный знак, обозначающий"любой текст".-->

5. Подсчет непустых ячеек в фильтрованных данных

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

Синтаксис:

=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(номер_функции; диапазон)

Для подсчета непустых ячеек укажите номер_функции = 3 (аналог СЧЁТЗ для видимых данных):

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

Преимущества метода:

  • 🔹 Учитывает только видимые строки после применения фильтра
  • 🔹 Автоматически обновляется при изменении фильтра
  • 🔹 Работает в таблицах Excel (Ctrl+T)

Ограничения:

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

6. Автоматизация: макрос VBA для подсчета непустых ячеек

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

  • 🔹 Игнорирования формул, возвращающих пустую строку
  • 🔹 Возможности указать несколько диапазонов
  • 🔹 Вывода результата в сообщении или ячейку

📌 Код макроса:

Sub CountNonEmptyCells

Dim rng As Range, cell As Range

Dim count As Long

Dim inputRange As String

Dim outputCell As String

' Запрос диапазона у пользователя

inputRange = InputBox("Введите диапазон (например, A1:B100)","Подсчет непустых ячеек")

If inputRange ="" Then Exit Sub

' Запрос ячейки для вывода результата

outputCell = InputBox("Введите ячейку для результата (например, C1). Оставьте пустым для сообщения.","Вывод результата")

Set rng = Range(inputRange)

count = 0

' Подсчет непустых ячеек (исключая формулы с"")

For Each cell In rng

If Not IsEmpty(cell) And cell.Value <>"" Then

count = count + 1

End If

Next cell

' Вывод результата

If outputCell <>"" Then

Range(outputCell).Value = count

Else

MsgBox"Количество непустых ячеек:" & count, vbInformation

End If

End Sub

🔹 Как использовать:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Запустите макрос через F5 или кнопку на панели.
  4. Укажите диапазон (например, A1:D500) и ячейку для результата.

⚠️ Важно: Макрос отличает истинно пустые ячейки от ячеек с формулой ="". Если нужно учитывать и такие ячейки, замените условие на:

If Not IsEmpty(cell) Then

- Всегда тестируйте код на копии данных.

- Отключите автоматическое обновление связей (Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Настройки макросов).

- Для совместной работы используйте цифровую подпись макроса.

-->

7. Подсчет непустых ячеек в Google Таблицах

Пользователи Google Sheets также могут подсчитывать непустые ячейки, но с некоторыми особенностями. Большинство функций Excel работают и здесь, но есть нюансы:

Аналоги функций:

  • 🔹 =COUNTA(диапазон) — полный аналог СЧЁТЗ
  • 🔹 =COUNTBLANK(диапазон) — аналог СЧИТАТЬПУСТОТЫ
  • 🔹 =SUBTOTAL(3; диапазон) — для фильтрованных данных

Отличия:

  • ⚠️ Нет функции ФОРМУЛТЕКСТ — для проверки формул используйте =FORMULATEXT (требуется англоязычная локаль)
  • ⚠️ Формулы массива вводятся без Ctrl+Shift+Enter (автоматически)
  • ⚠️ Функция СЧЁТЕСЛИМН называется =COUNTIFS

🔹 Пример для Google Sheets: Подсчет непустых ячеек в столбце A, игнорируя ошибки:

=COUNTA(A1:A100) - COUNTIF(A1:A100;"#N/A")

💡 Совет: В Google Sheets можно использовать регулярные выражения для сложных условий. Например, подсчет ячеек, содержащих буквы (исключая числа):

=SUM(ARRAYFORMULA(IF(REGEXMATCH(A1:A100;"[а-яА-Яa-zA-Z]"); 1; 0)))

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

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

🔹 Ошибка 1: Функция СЧЁТЗ возвращает завышенное значение.

🔎 Причина: В диапазоне есть ячейки с формулами, возвращающими пустую строку (="") или ноль (=0).

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

=СУММ(--(A1:A100<>""))

🔹 Ошибка 2: СЧИТАТЬПУСТОТЫ не видит"пустые" ячейки.

🔎 Причина: Ячейки содержат невидимые символы (пробелы, неразрывные пробелы, символы табуляции).

Решение: Очистите данные функцией СЖПРОБЕЛЫ или найдите скрытые символы через ПЕЧСИМВ:

=ПЕЧСИМВ(A1) = 32

(код 32 — это пробел)

🔹 Ошибка 3: Формула массива возвращает #ЗНАЧ!.

🔎 Причина: В старых версиях Excel забыли нажать Ctrl+Shift+Enter.

Решение: Повторите ввод формулы с правильной комбинацией клавиш.

🔹 Ошибка 4: ПРОМЕЖУТОЧНЫЕ.ИТОГИ считает скрытые строки.

🔎 Причина: Функция применяется к структурированной таблице (Ctrl+T) без фильтра.

Решение: Используйте классический диапазон (A1:A100) вместо ссылок на таблицу.

Ошибка Симптом Решение
Завышенное значение СЧЁТЗ Функция считает ячейки с ="" Используйте =СУММ(--(A1:A100<>""))
СЧИТАТЬПУСТОТЫ не работает Ячейки"пустые", но функция возвращает 0 Проверьте на скрытые символы через ПЕЧСИМВ
#ЗНАЧ! в формуле массива Формула не введена как массив Нажмите Ctrl+Shift+Enter (для Excel 2019 и старше не требуется)
ПРОМЕЖУТОЧНЫЕ.ИТОГИ считает скрытые строки Функция возвращает значение для всех строк таблицы Замените структурированную ссылку на классический диапазон

1. Скрытые символы (пробелы, табуляции)

2. Формулы, возвращающие пустые строки

3. Ошибки (#Н/Д, #ДЕЛ/0!)

4. Ячейки с условным форматированием, которые могут визуально скрывать содержимое

-->

FAQ: Частые вопросы о подсчете непустых ячеек

Можно ли подсчитать непустые ячейки в нескольких несмежных диапазонах?

Да, для этого укажите диапазоны через точку с запятой (в русскоязычной версии Excel):

=СЧЁТЗ(A1:A10; C1:C10; E1:E10)

В англоязычной версии используйте запятую:

=COUNTA(A1:A10, C1:C10, E1:E10)
Как подсчитать непустые ячейки, игнорируя ячейки с нулем?

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

=СУММ(--(A1:A100<>0); --(A1:A100<>""))

Эта формула учитывает ячейки, которые:

  • Не равны нулю (<>0)
  • Не пустые (<>"")
Почему СЧЁТЗ и СЧИТАТЬПУСТОТЫ дают разные результаты при сложении?

Это происходит из-за ячеек с формулами, возвращающими пустую строку (=""). Такие ячейки:

  • Учитываются функцией СЧЁТЗ (как непустые)
  • Игнорируются функцией СЧИТАТЬПУСТОТЫ (так как технически не пусты)

Чтобы получить точное количество, используйте:

=СТРОКА(A100) - СЧИТАТЬПУСТОТЫ(A1:A100)
Как подсчитать непустые ячейки в сводной таблице?

Сводные таблицы не поддерживают стандартные функции подсчета. Вместо этого:

  1. Добавьте поле в область Значения.
  2. Выберите функцию Количество (Count).
  3. Настройте фильтр для исключения пустых значений.

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

Можно ли подсчитать непустые ячейки по цвету?

Стандартные функции Excel не умеют анализировать цвет ячеек. Для этого понадобится:

  • 🔹 Фильтр по цвету (вручную отфильтруйте ячейки нужного цвета и используйте ПРОМЕЖУТОЧНЫЕ.ИТОГИ)
  • 🔹 Макрос VBA (пример кода есть в разделе про автоматизацию)
  • 🔹 Надстройка (например, Kutools for Excel)