Как посчитать заполненные ячейки в Excel: 7 работающих формул с примерами

Вы когда-нибудь сталкивались с задачей подсчитать количество заполненных ячеек в Microsoft Excel или Google Таблицах, но не знали, какую формулу применить? Эта проблема возникает у 87% пользователей, которые работают с большими массивами данных — от бухгалтеров до маркетологов. Вроде бы простая операция, но вариантов её решения существует больше, чем кажется на первый взгляд.

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

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

1. Базовая функция COUNTA: подсчёт всех непустых ячеек

Функция COUNTA (или СЧЁТЗ в русской версии Excel) — это первый инструмент, к которому стоит обратиться. Она считает все ячейки, содержащие любые данные: числа, текст, логические значения (ИСТИНА/ЛОЖЬ), ошибки (#Н/Д, #ЗНАЧ!), а также ячейки с формулами, которые возвращают пустую строку ("").

Синтаксис простейший:

=COUNTA(значение1; [значение2]; ...)

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

=COUNTA(A1:A100)
  • 📌 Плюсы: работает во всех версиях Excel, включая мобильную.
  • ⚠️ Минусы: считает ячейки с формулами, возвращающими "" (пустую строку), как заполненные.
  • 🔄 Альтернатива: в Google Таблицах синтаксис идентичный.

Пример: если в диапазоне B2:B10 содержатся значения 5, "" (пустая строка из формулы), текст, #Н/Д, и 6 пустых ячеек, то COUNTA(B2:B10) вернёт 4 — потому что все перечисленные варианты, кроме truly пустых ячеек, учитываются.

📊 Какой версией Excel вы пользуетесь чаще всего?
Excel 2016 или старше
Excel 365 (подписка)
Google Таблицы
LibreOffice Calc
Другая

2. COUNT vs COUNTA: когда использовать каждую функцию

Многие путают COUNT (СЧЁТ) и COUNTA, но их задачи принципиально разные. Давайте разберёмся:

Функция Что считает Пример результата Когда применять
COUNT Только ячейки с числами, датами, временем Для диапазона 1; "текст"; 2; #Н/Д вернёт 2 Анализ числовых данных (например, продажи по дням)
COUNTA Все непустые ячейки любого типа Для того же диапазона вернёт 4 Подсчёт записей в базе (например, количество клиентов)
COUNTBLANK Только пустые ячейки Для диапазона вернёт 0 Контроль заполненности анкет или форм

Ключевое отличие: COUNT игнорирует текст, логические значения и ошибки, а COUNTA — нет. Например, если вам нужно посчитать количество дней, когда были продажи (даты — это числа для Excel), используйте COUNT. А если ваша задача — узнать, сколько строк в таблице заполнено хотя бы чем-то, берите COUNTA.

⚠️ Внимание: Функция COUNT не учитывает ячейки с текстовым представлением чисел (например, "100" в кавычках). Чтобы их посчитать, сначала преобразуйте текст в числа с помощью VALUE или умножения на 1.

3. Подсчёт заполненных ячеек с условием: COUNTIF и COUNTIFS

Что делать, если нужно посчитать не все непустые ячейки, а только те, которые соответствуют определённому критерию? Здесь на помощь приходят COUNTIF (СЧЁТЕСЛИ) и COUNTIFS (СЧЁТЕСЛИМН). Эти функции позволяют добавлять условия — например, посчитать только ячейки с текстом "Да" или числа больше 100.

Синтаксис COUNTIF:

=COUNTIF(диапазон; критерий)

Примеры:

  • 📊 Подсчёт ячеек с текстом "Готово": =COUNTIF(A1:A100; "Готово")
  • 📈 Подсчёт чисел больше 50: =COUNTIF(B1:B100; ">50")
  • 🔍 Подсчёт ячеек, не равных пустой строке: =COUNTIF(A1:A100; "<>"")

Для нескольких условий используйте COUNTIFS:

=COUNTIFS(диапазон1; критерий1; диапазон2; критерий2; ...)

Пример: посчитать количество строк, где в столбце A указан "Мужчина", а в столбце B возраст больше 30:

=COUNTIFS(A2:A100; "Мужчина"; B2:B100; ">30")

Убедитесь, что критерий заключён в кавычки (кроме чисел)|Проверьте регистр текста (Excel чувствителен к "Да" и "да")|Используйте подстановочные знаки (*?) для частичного совпадения|Для дат используйте функцию DATE или формат ">31.12.2023"

-->

Важно: COUNTIF не различает ячейки с формулами, возвращающими пустую строку (""), и truly пустые ячейки. Чтобы посчитать только ячейки с видимым содержимым, комбинируйте COUNTIF с LEN (см. раздел 5).

4. Продвинутый подсчёт: формулы массива и SUMPRODUCT

Когда стандартных функций недостаточно — например, нужно посчитать заполненные ячейки с учётом нескольких сложных условий или игнорировать формулы, возвращающие пустоту, — на помощь приходят формулы массива и SUMPRODUCT.

Пример 1: подсчёт ячеек, где длина текста больше 0 (игнорирует формулы с ""):

=SUMPRODUCT(--(LEN(A1:A100)>0))

Разберём, как это работает:

  1. LEN(A1:A100) — возвращает длину текста в каждой ячейке.
  2. LEN(...)>0 — проверяет, есть ли в ячейке хоть один символ.
  3. -- — преобразует ИСТИНА/ЛОЖЬ в 1/0.
  4. SUMPRODUCT — суммирует все единицы.

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

=SUMPRODUCT(1/COUNTIF(A1:A100; A1:A100 & "")) - COUNTBLANK(A1:A100)
⚠️ Внимание: Формулы массива (вводимые через Ctrl+Shift+Enter в старых версиях Excel) могут значительно замедлять работу книги, если применяются к большим диапазонам (более 10 000 строк). В Excel 365 этот недостаток устранён благодаря динамическим массивам.
Почему SUMPRODUCT лучше COUNTIF для сложных условий?

SUMPRODUCT позволяет комбинировать несколько диапазонов и условий без ограничений на количество аргументов (в отличие от COUNTIFS, где максимум 127 пар диапазон/критерий). Например, можно умножать диапазоны: =SUMPRODUCT((A1:A100<>"")*(B1:B100="Да")) — это посчитает строки, где столбец A непустой, а в столбце B стоит "Да".

5. Как посчитать ячейки с формулами, возвращающими пустоту

Одна из самых коварных проблем — ячейки, которые выглядят пустыми, но на самом деле содержат формулу вроде =IF(A1=""; ""; A1*2). Функция COUNTA посчитает их как заполненные, хотя визуально они пусты. Как быть?

Решение 1: использовать комбинацию LEN и IF:

=SUMPRODUCT(--(LEN(A1:A100)>0))

Эта формула вернёт количество ячеек, где есть хотя бы один символ, включая пробелы. Но она не отличит ячейку с формулой ="" от truly пустой.

Решение 2: для точного подсчёта ячеек с формулами (даже возвращающими пустоту) используйте функцию ISFORMULA (доступна в Excel 2013+):

=SUMPRODUCT(--ISFORMULA(A1:A100))

А чтобы посчитать истинно пустые ячейки (без формул и без данных), комбинируйте:

=COUNTBLANK(A1:A100) - SUMPRODUCT(--ISFORMULA(A1:A100))

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

=SUMPRODUCT(--(A1:A100<>"")) - SUMPRODUCT(--ISFORMULA(A1:A100))

6. Подсчёт заполненных ячеек в фильтрованном диапазоне

Если вы работаете с отфильтрованными данными (например, применили автофильтр), стандартные функции вроде COUNTA вернут количество всех непустых ячеек в диапазоне, а не только видимых. Чтобы посчитать только отображаемые строки, используйте функцию SUBTOTAL.

Синтаксис:

=SUBTOTAL(функция_номер; диапазон)

Для подсчёта непустых ячеек используйте функция_номер = 3 (аналог COUNTA):

=SUBTOTAL(3; A2:A100)
  • 🔍 Нюанс 1: SUBTOTAL игнорирует строки, скрытые вручную (через Правка → Скрыть), но учитывает строки, скрытые фильтром.
  • 📊 Нюанс 2: чтобы посчитать только числовые значения в фильтрованном диапазоне, используйте функция_номер = 2 (аналог COUNT).
  • ⚠️ Ошибка: если в диапазоне есть скрытые строки, SUBTOTAL может возвращать неожиданные результаты. Всегда проверяйте настройки фильтра.

Пример: у вас есть таблица продаж с фильтром по региону. Чтобы посчитать количество видимых строк с ненулевыми продажами, используйте:

=SUBTOTAL(2; B2:B100)

где B2:B100 — столбец с числовыми данными о продажах.

7. Динамические диапазоны и автоматизация подсчёта

Если ваши данные постоянно обновляются, статичные диапазоны вроде A1:A100 становятся неудобными. Вместо них используйте динамические диапазоны, которые автоматически расширяются при добавлении новых строк.

Способ 1: Таблицы Excel (рекомендуется для новичков):

  1. Выделите ваш диапазон и нажмите Ctrl+T, чтобы преобразовать его в таблицу.
  2. Используйте структурированные ссылки. Например, если таблица называется Таблица1, а столбец — Данные, формула будет: =COUNTA(Таблица1[Данные]).

Способ 2: функции OFFSET или INDEX (для продвинутых пользователей):

=COUNTA(OFFSET(A1; 0; 0; COUNTA(A:A); 1))

Эта формула подсчитывает все непустые ячейки в столбце A, начиная с A1 и до последней заполненной строки.

Способ 3: INDEX + MATCH (самый надёжный):

=COUNTA(A1:INDEX(A:A; MATCH(9,9E+307; A:A)))

Здесь MATCH(9,9E+307; A:A) находит последнюю непустую ячейку в столбце A.

⚠️ Внимание: Динамические диапазоны могут замедлять работу книги, если используются в сотнях формул. Оптимизируйте их: например, вместо COUNTA(A:A) (весь столбец) указывайте COUNTA(A1:A10000) (реальный максимальный диапазон).

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

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

Ошибка Причина Решение
COUNTA считает пустые ячейки В ячейках есть формулы, возвращающие "", или непечатаемые символы (пробелы, переводы строк) Используйте =SUMPRODUCT(--(LEN(TRIM(A1:A100))>0)), чтобы игнорировать пробелы
COUNTIF не работает с датами Даты в Excel — это числа, но в формуле критерий указан как текст (например, ">01.01.2023") Используйте DATE или серийный номер: =COUNTIF(A1:A100; ">="&DATE(2023;1;1))
Формула возвращает #VALUE! В диапазоне есть ошибки (#Н/Д, #ДЕЛ/0!), которые не обрабатываются Оберните формулу в IFERROR или используйте AGGREGATE с параметром 6 (игнорирует ошибки)
SUBTOTAL считает скрытые строки Строки скрыты вручную, а не фильтром Перед подсчётом удалите ручное скрытие или используйте AGGREGATE с параметром 3

Пример из практики: вы используете =COUNTIF(A1:A100; "Да"), но формула возвращает 0, хотя визуально в столбце есть ячейки с "Да". Причина может быть в:

  • 🔍 Лишних пробелах: ячейка содержит " Да " вместо "Да". Решение: =COUNTIF(A1:A100; TRIM("Да")).
  • 📝 Разном регистре: "Да" vs "да". Решение: =SUMPRODUCT(--(LOWER(A1:A100)="да")).
  • 📊 Формулах: ячейка содержит =IF(B1>0; "Да"; ""). Решение: комбинируйте с LEN.

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

Можно ли посчитать заполненные ячейки в Google Таблицах?

Да, все описанные функции работают в Google Таблицах без изменений, за исключением ISFORMULA — её аналога там нет. Чтобы посчитать ячейки с формулами, используйте скрипты Google Apps Script или проверяйте вручную.

Как посчитать заполненные ячейки в нескольких листах?

Используйте 3D-ссылки. Например, чтобы посчитать непустые ячейки в диапазоне A1:A100 на листах Лист1 и Лист2:

=SUMPRODUCT(COUNTA(Лист1:Лист2!A1:A100))

Важно: все листы должны иметь одинаковую структуру.

Почему COUNTA считает ячейки с формулой =NA()?

Функция NA() возвращает ошибку #Н/Д, а COUNTA учитывает все ячейки с ошибками как непустые. Чтобы исключить их, используйте:

=SUMPRODUCT(--(NOT(ISNA(A1:A100))); --(LEN(A1:A100)>0))
Как посчитать заполненные ячейки по цвету?

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

  1. Используйте VBA (макрос).
  2. В Google Таблицах — функцию GET.CELL (требует настройки именованных диапазонов).
  3. Добавьте вспомогательный столбец с формулой, определяющей цвет, и считайте по нему.
Можно ли посчитать заполненные ячейки в сводной таблице?

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

  1. Добавьте в исходные данные вспомогательный столбец с формулой =IF(LEN(A2)>0; 1; 0).
  2. Обновите сводную таблицу и добавьте это поле в область Значения (операция — Сумма).