Как посчитать количество заполненных строк в Excel: все рабочие способы

Работа с большими таблицами в Microsoft Excel часто требует анализа данных — и один из самых распространённых вопросов: "сколько строк в таблице содержат хотя бы одну запись?" На первый взгляд задача простая, но на практике пользователи сталкиваются с нюансами: пустые ячейки, скрытые строки, данные в разных столбцах или даже на разных листах. Ошибки в подсчёте ведут к искажённым отчётам, неправильным выводам и потерянному времени.

Эта статья охватывает все актуальные способы подсчёта заполненных строк — от элементарных функций для новичков до автоматизированных решений для опытных пользователей. Мы разберём, когда лучше использовать СЧЁТЗ, а когда — СЧИТАТЬПУСТОТЫ, как обойти ограничения стандартных формул и почему иногда проще применить Power Query вместо ручного фильтра. Особое внимание уделим типичным ошибкам, из-за которых Excel "не видит" заполненные строки, и покажем, как их избежать.

Если вы работаете с данными ежедневно, сохраните эту страницу в закладки — здесь есть решения для таблиц любого размера и структуры.

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

Начнём с самого простого варианта — подсчёта строк, где заполнена конкретная колонка. Для этого в Excel есть функция СЧЁТЗ (англ. COUNTA). Она считает количество непустых ячеек в указанном диапазоне, включая текст, числа, даты и даже ошибки (например, #ДЕЛ/0!).

Формула выглядит так:

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

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

=СЧЁТЗ(A1:A1000)

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

  • 🔹 Простота — подходит для новичков
  • 🔹 Быстро работает даже с большими диапазонами
  • 🔹 Не требует дополнительных настроек

Минусы:

  • 🚫 Считает только один столбец — если данные разбросаны по нескольким колонкам, результат будет неточным
  • 🚫 Учитывает ячейки с формулами, которые возвращают пустую строку ("")

2. Подсчёт строк с данными в нескольких столбцах

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

Есть два надёжных способа:

Способ 1. Формула массива (для Excel 2019 и старше)

=СЧЁТЕСЛИ(СТРОКА(A1:A1000)-МИН(ЕСЛИ(A1:Z1000<>"";СТРОКА(A1:A1000)));">0")
Примечание: Эта формула ищет номера строк, где хотя бы одна ячейка в диапазоне A1:Z1000 не пустая, а затем считает уникальные значения.

Способ 2. Вспомогательный столбец (универсально для всех версий)

  1. Добавьте новый столбец справа от данных.
  2. В первой ячейке столбца введите: =ЕСЛИ(СЧЁТЗ(A1:Z1)>0;1;"")
  3. Растяните формулу на все строки.
  4. Используйте СЧЁТЗ для подсчёта единиц во вспомогательном столбце.

📌 Пример:

ИмяФамилияВозраст📌 Заполнена?
ИванПетров301
Мария251

Формула во вспомогательном столбце вернёт 2 — именно столько строк содержат данные.

📊 Какой способ подсчёта вы используете чаще?
Формулы в одной ячейке
Вспомогательные столбцы
Фильтры
Power Query

3. Использование фильтра для визуального контроля

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

Пошаговая инструкция:

  1. Выделите заголовки столбцов (первую строку таблицы).
  2. Перейдите на вкладку ДанныеФильтр (или нажмите Ctrl+Shift+L).
  3. В выпадающем списке любого столбца снимите галочку с (Пустые).
  4. Excel скрывает все пустые строки — количество оставшихся отображается в статусной строке внизу окна (например, "Записей: 42 из 100").

⚠️ Внимание: Фильтр учитывает только текущий столбец. Если в строке есть данные в колонке B, но пусто в колонке A, при фильтрации по A такая строка будет скрыта. Чтобы избежать ошибок, фильтруйте по столбцу, который гарантированно заполнен во всех строках (например, по уникальному идентификатору).

🔹 Бонус: После фильтрации можно скопировать видимые строки в новый лист командой ГлавнаяНайти и выделитьВыделить видимые ячейки.

Выделить всю таблицу (включая заголовки)

Проверить, нет ли объединённых ячеек

Убедиться, что в первом столбце нет полностью пустых строк

Сохранить файл перед фильтрацией-->

4. Продвинутый метод: Power Query для больших таблиц

Если ваша таблица содержит десятки тысяч строк или данные распределены по нескольким листам, обычные формулы могут тормозить. В этом случае оптимально использовать Power Query — инструмент для обработки и трансформации данных, встроенный в Excel 2016 и новее.

Как посчитать заполненные строки через Power Query:

  1. Выделите вашу таблицу и нажмите ДанныеИз таблицы/диапазона (или Get & Transform DataFrom Table/Range).
  2. В открывшемся редакторе Power Query выделите все столбцы (кликните на заголовок первого столбца, зажмите Shift и кликните на последний).
  3. На вкладке Главная выберите Удалить строкиУдалить пустые строки.
  4. В правой панели Свойства вы увидите количество оставшихся строк (это и есть искомое значение).
  5. Нажмите Закрыть и загрузить, чтобы вернуть данные в Excel.

💡 Преимущества Power Query:

  • 🔹 Обрабатывает миллионы строк без зависаний
  • 🔹 Можно объединять данные из нескольких листов или файлов
  • 🔹 Сохраняет шаги обработки — при обновлении данных подсчёт повторяется автоматически

⚠️ Внимание: Power Query удаляет полностью пустые строки. Если в строке есть хотя бы одна непустая ячейка (даже с пробелом или невидимым символом), она останется. Для точной очистки используйте функцию Table.SelectRows с условием в редакторе M.

Как вернуть удалённые строки?

Если вы случайно удалили строки в Power Query, не сохраняя изменения, закройте редактор без применения (кнопка "Отмена"). Если изменения уже применены, воспользуйтесь историей изменений в Excel (Файл → Сведения → Управление книгой → История версий) или отмените последнее действие (Ctrl+Z).

5. Подсчёт с учётом скрытых строк и фильтров

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

Формула для подсчёта только видимых строк:

=ПРОСМОТР(9^9;1/((ПОДИТОГ(103;СМЕЩ(A1;СТРОКА(A1:A1000)-1;0))>0)*(СТРОКА(A1:A1000)>0));СТРОКА(A1:A1000))
Примечание: Эта формула массива работает только в классическом Excel (не в Excel 365 с динамическими массивами). Она учитывает строки, видимые после применения фильтра.

Альтернатива для Excel 365:

=СЧЁТЕСЛИ(ПОДИТОГ(103;СМЕЩ(A1;ПОСЛЕДНИЕ(СТРОКА(A:A));0));">0")

📊 Сравнение методов:

МетодУчитывает скрытые строкиУчитывает строки, скрытые фильтромРаботает в Excel 365
СЧЁТЗ❌ Нет✅ Да✅ Да
Фильтр + статусная строка❌ Нет✅ Да✅ Да
Формула с ПОДИТОГ❌ Нет✅ Да⚠️ Частично
Power Query✅ Да❌ Нет✅ Да

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

Если вам регулярно нужно считать заполненные строки в таблицах с нестандартной структурой (например, с объединёнными ячейками или условным форматированием), поможет VBA-макрос. Ниже приведён код, который подсчитывает строки с данными в выделенном диапазоне, игнорируя пустые и скрытые:

Sub CountNonEmptyRows()

Dim rng As Range

Dim count As Long

Dim row As Range

Dim isEmpty As Boolean

' Выделяем диапазон (например, A1:Z1000)

Set rng = Selection

count = 0

For Each row In rng.Rows

isEmpty = True

On Error Resume Next ' Игнорируем ошибки при проверке скрытых строк

If row.EntireRow.Hidden Then

GoTo NextRow ' Пропускаем скрытые строки

End If

On Error GoTo 0

' Проверяем, есть ли данные в строке

If WorksheetFunction.CountA(row) > 0 Then

count = count + 1

End If

NextRow:

Next row

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

End Sub

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

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

⚠️ Внимание: Макрос учитывает только видимые строки и пропускает те, где все ячейки пустые или содержат формулы, возвращающие "". Для изменения логики отредактируйте строку If WorksheetFunction.CountA(row) > 0 Then.

🔧 Дополнительные возможности VBA:

  • 🔹 Можно модифицировать скрипт для подсчёта строк по условию (например, только с числовыми значениями)
  • 🔹 Добавить обработку нескольких листов или книг
  • 🔹 Сохранять результаты в отдельную ячейку или файл

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

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

Ошибка 1: Формула возвращает 0, хотя строки заполнены

  • 🔸 Причина: Диапазон в формуле указан неверно (например, A1:A10 вместо A1:A1000).
  • 🔸 Решение: Проверьте границы диапазона и используйте Ctrl+Shift+↓, чтобы быстро выделить все заполненные ячейки в столбце.

Ошибка 2: СЧЁТЗ считает строки с формулами, возвращающими ""

  • 🔸 Причина: Функция СЧЁТЗ воспринимает формулу =ЕСЛИ(A1=0;"";"Да") как непустую ячейку, даже если результат пуст.
  • 🔸 Решение: Замените СЧЁТЗ на =СУММПРОИЗВ(--(ДЛСТР(A1:A1000)>0)) (вводится как формула массива в старых версиях).

Ошибка 3: Фильтр не показывает реальное количество строк

  • 🔸 Причина: В таблице есть объединённые ячейки, которые фильтр обрабатывает неправильно.
  • 🔸 Решение: Разъедините ячейки (ГлавнаяОбъединить и центрировать) или используйте Power Query.

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

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

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

Да, в Google Sheets работают те же принципы, что и в Excel. Используйте:

  • =COUNTA(A1:A1000) — аналог СЧЁТЗ.
  • =QUERY(A1:Z1000; "SELECT COUNT(A) WHERE A IS NOT NULL OR B IS NOT NULL"; 1) — для подсчёта строк с данными в любом из столбцов A или B.

Отличие: в Google Таблицах нет Power Query, но есть встроенный Apps Script для автоматизации.

Как посчитать строки, где заполнены ВСЕ столбцы (нет пустых ячеек)?

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

=СУММ(--(СЧЁТЗ(A1:A1000)=СЧЁТЗ(1:A1000)))

Для Excel 365 подойдёт:

=СЧЁТЕСЛИ(ПРОИЗВЕД(--(A1:A1000<>""));1)
Почему СЧЁТЗ считает строки с пробелами как заполненные?

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

=СУММПРОИЗВ(--(ПСТР(A1:A1000;1;1)<>""))

Или для удаления пробелов перед подсчётом:

=СЧЁТЕСЛИ(ПОДСТАВИТЬ(A1:A1000;" ";"");"<>""")
Как посчитать заполненные строки на защищённом листе?

Если лист защищён, вы не сможете редактировать ячейки или добавлять формулы. Решения:

  • 🔹 Попросите администратора снять защиту (пароль знают только владельцы файла).
  • 🔹 Скопируйте данные на новый лист (ГлавнаяФорматПеренести или скопировать лист).
  • 🔹 Используйте Power Query — он работает независимо от защиты листа.
Можно ли посчитать заполненные строки по цвету ячейки?

Стандартные функции Excel не умеют анализировать цвет. Решения:

  • 🔹 Фильтр по цвету: Примените фильтр (ДанныеФильтр), в выпадающем списке выберите Фильтр по цвету → нужный цвет. Количество строк будет в статусной строке.
  • 🔹 VBA-скрипт:
    Function CountColoredRows(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

    CountColoredRows = count

    End Function

    Использование: =CountColoredRows(A1:A100;B1), где B1 — ячейка с образцом цвета.