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

Почему подсчёт ячеек с данными — ключевая задача в Excel

Работа с большими массивами данных в Microsoft Excel или Google Таблицах часто требует быстрого анализа заполненности таблицы. Представьте: у вас список из 500 клиентов, но только 200 из них указали email. Как оперативно узнать это число без ручного пересчёта? Или другой случай: нужно проверить, сколько строк в отчёте содержат реальные продажи, а не пустые значения. Именно здесь на помощь приходят инструменты подсчёта заполненных ячеек.

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

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

Метод 1: Функция СЧЁТЗ — универсальное решение для новичков

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

  • 📌 Числа (включая даты и время)
  • 📌 Текстовые строки
  • 📌 Логические значения (ИСТИНА/ЛОЖЬ)
  • 📌 Ошибки (#ДЕЛ/0!, #Н/Д и др.)
  • Не учитывает: пустые ячейки и строки, возвращённые формулами (например, =ЕСЛИ(A1=0;"";"Значение") при A1=0)

Синтаксис функции:

=СЧЁТЗ(значение1; [значение2]; ...)

Пример использования для подсчёта заполненных ячеек в столбце A:

=СЧЁТЗ(A2:A100)
⚠️ Внимание: Если в диапазоне есть ячейки с формулой = "" (пустая строка), СЧЁТЗ посчитает их как заполненные! Чтобы исключить такие случаи, комбинируйте функцию с ДЛСТР.

Для наглядности сравним СЧЁТЗ с другими функциями подсчёта:

ФункцияСчитает числаСчитает текстСчитает ошибкиИгнорирует пустые ячейки
СЧЁТ
СЧЁТЗ
СЧИТАТЬПУСТОТЫ❌ (считает только пустые)
СЧЁТЕСЛИ✅ (по условию)✅ (по условию)
📊 Какой функцией вы чаще всего подсчитываете ячейки?
СЧЁТЗ
СЧЁТ
СЧИТАТЬПУСТОТЫ
СЧЁТЕСЛИ
Другой вариант

Метод 2: Горячие клавиши для мгновенного анализа

Не всегда нужно использовать формулы — Excel предлагает встроенные инструменты быстрого анализа, которые работают в один клик. Вот три самых полезных:

  1. Автосумма в строке состояния

    Выделите диапазон ячеек (например, A2:A50) и посмотрите на строку состояния внизу окна Excel. Там отобразится количество выделенных ячеек, а справа — счётчик заполненных (например, "5 из 49"). Это самый быстрый способ для визуальной оценки.

  2. Комбинация Ctrl + Shift + L

    Включает/выключает фильтр. После активации в заголовках столбцов появятся стрелки — кликните на стрелочку и снимите галочку с "(Пустые)". Excel автоматически покажет только заполненные строки и выведет их количество в статусе.

  3. Ctrl + G → "Выделить группу ячеек"

    Откройте диалоговое окно Перейти (горячие клавиши F5 или Ctrl+G), нажмите "Выделить..." и выберите "Постоянные значения". Excel выделит все непустые ячейки в текущем диапазоне, а их количество отобразится в строке состояния.

Эти методы идеальны для разовых проверок, когда не хочется загромождать таблицу формулами. Например, перед отправкой отчёта начальству вы можете за 10 секунд проверить, нет ли пропущенных данных в критичных столбцах.

Метод 3: Функция СЧЁТЕСЛИ для избирательного подсчёта

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

  • 📌 Подсчитать ячейки с текстом "Да"
  • 📌 Найти все числа больше 100
  • 📌 Посчитать ячейки, содержащие ошибку #Н/Д

Синтаксис:

=СЧЁТЕСЛИ(диапазон; критерий)

Примеры использования:

=СЧЁТЕСЛИ(A2:A100; "Да")  // Текстовое совпадение

=СЧЁТЕСЛИ(B2:B100; ">1000") // Числа больше 1000

=СЧЁТЕСЛИ(C2:C100; "<>") // Все непустые ячейки (альтернатива СЧЁТЗ)

Особенно полезна СЧЁТЕСЛИ при работе с выпадающими списками или данными, где важно отслеживать распределение ответов. Например, в опросе с вариантами "Да/Нет/Не знаю" вы можете одной формулой посчитать количество каждого ответа.

⚠️ Внимание: Критерий в СЧЁТЕСЛИ чувствителен к регистру! Если в ячейке написано "да", а в формуле вы указали "Да", совпадения не будет. Используйте ВПР или НАЙТИ для регистронезависимого поиска.
Как посчитать ячейки с частичным совпадением?

Используйте подстановочные знаки:

=СЧЁТЕСЛИ(A2:A100; "текст") — ищет ячейки, содержащие слово "текст" в любом месте. =СЧЁТЕСЛИ(A2:A100; "текст?") — ищет "текст" плюс любой один символ в конце (например, "тексты").

Метод 4: Продвинутый подсчёт с СЧЁТЕСЛИМН и ЛЯМБДА

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

  1. СЧЁТЕСЛИМН (англ. COUNTIFS) — позволяет задать несколько диапазонов и условий. Например, посчитать ячейки в столбце A, где значение "Да", и одновременно в столбце B число больше 50:
    =СЧЁТЕСЛИМН(A2:A100; "Да"; B2:B100; ">50")
  2. ЛЯМБДА (Excel 365/2021) — для создания кастомных функций. Например, подсчёт ячеек, где длина текста больше 5 символов:
    =СЧЁТ(ФИЛЬТР(A2:A100; ЛЯМБДА(x; ДЛСТР(x)>5)))

Эти функции незаменимы для анализа многомерных данных. Допустим, у вас таблица продаж с колонками "Регион", "Продукт", "Сумма". За одну формулу вы можете посчитать, сколько сделок на сумму >10 000 руб. было заключено в Московском регионе по конкретному продукту.

ЗадачаФормула
Подсчёт ячеек с текстом длиной >3 символа=СЧЁТЕСЛИ(A2:A100; "???*")
Подсчёт дат в текущем месяце=СЧЁТЕСЛИМН(A2:A100; ">="&ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ());1); A2:A100; "<="&КОНМЕСЯЦА(СЕГОДНЯ();0))
Подсчёт уникальных непустых значений=СЧЁТ(УНИК(A2:A100))-СЧЁТЕСЛИ(A2:A100;"=")

1. Проверьте диапазоны на наличие скрытых символов (пробелов, неразрывных пробелов)

2. Убедитесь, что числа хранятся как числа, а не как текст

3. Для дат используйте функцию ДАТАЗНАЧ, если они импортированы как текст

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

-->

Метод 5: Условное форматирование для визуального контроля

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

  1. Выделите диапазон (например, A2:A100).
  2. Перейдите на вкладку ГлавнаяУсловное форматированиеСоздать правило.
  3. Выберите "Форматировать только ячейки, которые содержат".
  4. В поле "Форматировать только ячейки с" укажите "Значение" → "не равняется" → оставьте поле пустым.
  5. Задайте формат (например, зелёный фон) и нажмите ОК.

Теперь все непустые ячейки будут подсвечены, а их количество можно увидеть в строке состояния. Этот метод особенно полезен для контроля заполнения анкет или проверки обязательных полей перед отправкой данных.

Для автоматизации подсчёта добавьте ещё одно правило с формулой:

=СЧЁТЗ($A2:$A$100)

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

Метод 6: Power Query для обработки больших массивов

Когда таблица содержит десятки тысяч строк, стандартные функции Excel начинают тормозить. В этом случае используйте Power Query (доступен в Excel 2016+ и Excel 365):

  1. Выделите диапазон и перейдите на вкладку ДанныеИз таблицы/диапазона (или Получить данныеИз таблицы/диапазона).
  2. В открывшемся редакторе Power Query выберите столбец, по которому нужно посчитать непустые значения.
  3. Кликните правой кнопкой на заголовок столбца → Заменить значения → в поле "Значение" оставьте пустым, в поле "Заменить на" введите "1".
  4. Выделите столбец → вкладка ПреобразованиеЗаполнитьВниз.
  5. Добавьте новый столбец с формулой = Table.ColumnCount(Source) - List.Count(List.RemoveNulls(Source[ВашСтолбец])) для подсчёта пустых ячеек.
  6. Нажмите Закрыть и загрузить.

Power Query обрабатывает миллионы строк за секунды и позволяет сохранять шаги обработки для повторного использования. Это идеальный инструмент для регулярных отчётов, где нужно очищать данные от пустых значений перед анализом.

⚠️ Внимание: При импорте данных из внешних источников (CSV, SQL) Power Query может интерпретировать пустые ячейки как null. Используйте параметр Replace Nulls в настройках столбца, чтобы стандартизировать значения.

Метод 7: VBA-скрипты для автоматизации рутинных задач

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

Sub CountNonEmptyCells()

Dim rng As Range

Dim count As Long

Set rng = Selection

count = rng.SpecialCells(xlCellTypeConstants, 23).Count + _

rng.SpecialCells(xlCellTypeFormulas, 23).Count

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

End Sub

Чтобы использовать этот макрос:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (InsertModule).
  3. Вернитесь в Excel, выделите диапазон и запустите макрос через Alt + F8.

Для более сложных сценариев (например, подсчёт заполненных ячеек в нескольких листах или книгах) можно модифицировать скрипт, добавив циклы For Each. Это удобно для аудита больших проектов, где данные разбросаны по множеству файлов.

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

Используйте этот VBA-код:

Sub CountFormulaBlanks()

Dim rng As Range, cell As Range

Dim count As Long

Set rng = Selection

count = 0

For Each cell In rng

If cell.HasFormula And cell.Value = "" Then

count = count + 1

End If

Next cell

MsgBox "Ячеек с формулами, возвращающими пустую строку: " & count, vbExclamation

End Sub

FAQ: Частые вопросы о подсчёте ячеек в Excel

Почему СЧЁТЗ считает ячейки с формулой = "" как заполненные?

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

=СУММПРОИЗВ(--(ДЛСТР(A2:A100)>0))

или для Excel 365:

=СЧЁТ(ФИЛЬТР(A2:A100; A2:A100<>""))
Как посчитать ячейки с данными, игнорируя скрытые строки?

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

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

Эта функция автоматически игнорирует скрытые строки, что удобно для работы с отфильтрованными данными.

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

Стандартными функциями — нет. Но можно использовать VBA:

Function CountColoredCells(rng As Range, color As Range) As Long

Dim cl As Range, 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

CountColoredCells = count

End Function

Вызовите функцию в ячейке как =CountColoredCells(A2:A100; B1), где B1 — ячейка с образцом цвета.

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

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

  1. Добавить поле в область "Значения" и выбрать агрегацию "Количество".
  2. Использовать ПРОМЕЖУТОЧНЫЕ.ИТОГИ на исходных данных перед созданием сводной.
  3. Добавить вычисляемое поле с формулой =СЧЁТЗ(диапазон).
Почему в Google Таблицах формулы работают иначе?

В Google Sheets функции аналогичны, но есть нюансы:

  • 📌 COUNTA ведёт себя идентично СЧЁТЗ.
  • 📌 Для подсчёта уникальных непустых значений используйте =COUNTA(UNIQUE(A2:A100)).
  • 📌 Функция QUERY позволяет делать сложные выборки: =QUERY(A2:B100; "SELECT COUNT(A) WHERE A IS NOT NULL").