Как в Excel посчитать строки: все способы от простого к сложному

Подсчёт строк в Microsoft Excel — задача, с которой сталкивается каждый пользователь, независимо от уровня подготовки. Кому-то нужно узнать общее количество записей в таблице, кому-то — посчитать только заполненные ячейки, а кому-то — отфильтровать данные по условию. В этой статье мы разберём все возможные методы: от элементарных (подойдут даже для новичков) до продвинутых (с использованием формул массива и Power Query).

Чаще всего ошибки возникают из-за непонимания разницы между физическим количеством строк (включая пустые) и логическим (только с данными). Например, если вы скопируете диапазон A1:A100, но заполнены только первые 10 ячеек, Excel по умолчанию будет считать все 100 строк. Как этого избежать? Об этом — в первом разделе.

Мы также раскроем малоизвестные приёмы, например, как посчитать строки с учётом скрытых данных или как автоматизировать подсчёт с помощью VBA. В конце статьи вы найдёте сравнительную таблицу методов и FAQ с ответами начные вопросы.

Готовы? Тогда приступаем!

1. Самый простой способ: подсчёт строк в выделенном диапазоне

Если вам нужно узнать общее количество строк в заранее выделенном диапазоне (например, A1:A50), используйте встроенную подсказку Excel. Этот метод не требует формул и подходит для быстрой оценки.

Выделите интересующий вас диапазон ячеек. В правом нижнем углу окна Excel появится небольшая панель с информацией о количестве выделенных ячеек. Например, если вы выделили B2:B20, то увидите надпись типа "Стр: 19" (количество строк в диапазоне). Обратите внимание: здесь учитываются все строки, даже пустые.

⚠️

Внимание: Этот метод показывает физическое количество строк, а не количество ячеек с данными. Если в диапазоне A1:A10 заполнена только A1, Excel всё равно покажет 10 строк.
  • Плюсы: моментально, без формул, работает во всех версиях Excel.
  • Минусы: не различает пустые и заполненные ячейки, не подходит для динамических диапазонов.

Чтобы посчитать только непустые строки, переходим к следующему методу.

📊 Какой версии Excel вы пользуетесь?
Excel 2010 или старше
Excel 2013-2016
Excel 2019
Excel 365 (онлайн/десктоп)
Другой редактор (LibreOffice, Google Sheets)

2. Функция СЧЁТЗ: подсчёт непустых строк

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

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

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

Пример: =СЧЁТЗ(A2:A100) вернёт количество заполненных ячеек в диапазоне A2:A100.

🔹 Нюанс: Если в ячейке формула, возвращающая пустую строку (например, =ЕСЛИ(A1=0;"";"Есть")), СЧЁТЗ её учитывает. Чтобы исключить такие случаи, комбинируйте с СЧЁТЕСЛИ (см. раздел 4).

  • 📌 Пример 1: Подсчёт всех заполненных строк в столбце B:
    =СЧЁТЗ(B:B)

    ⚠️ Внимание: Использование целого столбца (B:B) может замедлить работу книги!

  • 📌 Пример 2: Подсчёт строк в динамическом диапазоне (например, в таблице Excel):
    =СЧЁТЗ(Таблица1[Столбец1])

💡 Совет: Если вам нужно посчитать строки с только числовыми данными, используйте функцию СЧЁТ (англ. COUNT). Она игнорирует текст и пустые ячейки.

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

Допустим, у вас данные в столбце A идут подряд, а затем идут пустые ячейки. Как посчитать строки только до первого разрыва? Для этого подойдёт комбинация функций ПОИСКПОЗ и СЧЁТЗ.

Формула:

=ПОИСКПОЗ(ИСТИНА;A:A="";0)-1
Как это работает:
  1. A:A="" — проверяет каждую ячейку в столбце A на пустоту (возвращает массив ИСТИНА/ЛОЖЬ).
  2. ПОИСКПОЗ(ИСТИНА;...;0) — находит позицию первой пустой ячейки.
  3. -1 — вычитаем 1, чтобы получить количество заполненных строк до пустой.

⚠️

Внимание: Если в столбце нет пустых ячеек, формула вернёт ошибку #Н/Д. Чтобы избежать этого, оберните её в ЕСЛИОШИБКА:
=ЕСЛИОШИБКА(ПОИСКПОЗ(ИСТИНА;A:A="";0)-1;СЧЁТЗ(A:A))

📊 Пример: Если данные в A1:A5, а A6 пустая, формула вернёт 5.

Почему формула не работает с фильтром?

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

4. Условный подсчёт строк: СЧЁТЕСЛИ и СЧЁТЕСЛИМН

Часто требуется посчитать строки, соответствующие определённому условию. Например:

  • 📅 Количество строк с датой позднее 01.01.2026.
  • 💰 Количество строк, где сумма превышает 10 000.
  • 📌 Количество строк с конкретным текстом (например,"Да" или"Оплачено").

Для этого используйте:

  • СЧЁТЕСЛИ (англ. COUNTIF) — для одного условия.
  • СЧЁТЕСЛИМН (англ. COUNTIFS) — для нескольких условий.

Примеры:

Задача Формула Пояснение
Считаем строки с текстом"Да" =СЧЁТЕСЛИ(B2:B100;"Да") Регистр не важен (найдёт"да","ДА","Да").
Считаем строки с суммой > 1000 =СЧЁТЕСЛИ(C2:C100;">1000") Условие в кавычках!
Считаем строки, где статус"Оплачено" и сумма > 5000 =СЧЁТЕСЛИМН(B2:B100;"Оплачено"; C2:C100;">5000") Диапазоны должны быть одинакового размера.

🔹 Подводный камень: Если в ячейке формула, возвращающая пустую строку (например, =ЕСЛИ(A1=0;"";"Есть")), СЧЁТЕСЛИ её проигнорирует. Чтобы учитывать такие случаи, комбинируйте с СЧЁТЗ или используйте СУММПРОИЗВ.

Диапазон не содержит скрытых строк|Условие записано в правильном формате (текст в кавычках, числа без)|Для дат используйте функцию ДАТА или ссылку на ячейку|При нескольких условиях используйте СЧЁТЕСЛИМН

-->

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

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

Синтаксис:

=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3; диапазон)

Где:

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

Пример: Если у вас фильтр применён к диапазону A1:B100, и нужно посчитать видимые строки в столбце A:

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

🔹 Дополнительные коды операции:

  • 2 — подсчёт числовых значений (аналог СЧЁТ).
  • 103 — подсчёт непустых ячеек включая скрытые вручную (но не отфильтрованные!).

⚠️

Внимание: Функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ игнорирует строки, скрытые фильтром, но учитывает строки, скрытые вручную (через контекстное меню"Скрыть"). Если нужно исключить и их, используйте ПРОМЕЖУТОЧНЫЕ.ИТОГИ(103;...).

6. Продвинутые методы: формулы массива и Power Query

Если вам нужно посчитать строки с сложными условиями (например, учитывая несколько столбцов или исключая ошибки), пригодятся формулы массива или Power Query.

6.1. Формулы массива (Excel 365 и 2019)

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

=СЧЁТЕСЛИ(СТРОКА(A2:A100)-МИН(СТРОКА(A2:A100))+1;"<>"&"")
Пояснение: Формула создаёт массив номеров строк и проверяет, есть ли в каждой строке хотя бы одно непустое значение.

6.2. Power Query (Excel 2016+)

Power Query — мощный инструмент для обработки данных. Чтобы посчитать строки с его помощью:

  1. Выделите таблицу и перейдите на вкладку Данные → Из таблицы/диапазона.
  2. В редакторе Power Query добавьте столбец с формулой (например, = if [Столбец1] <> null then 1 else 0).
  3. Сложите значения нового столбца — это и будет количество строк.

💡 Преимущество: Power Query позволяет обрабатывать миллионы строк без замедления Excel.

6.3. VBA (для автоматизации)

Если вам нужно регулярно считать строки по сложным правилам, напишите макрос:

Sub CountRows

Dim ws As Worksheet

Dim lastRow As Long

Set ws = ActiveSheet

lastRow = ws.Cells(ws.Rows.Count,"A").End(xlUp).Row

MsgBox"Количество строк:" & lastRow

End Sub

Пояснение: Этот код находит последнюю непустую строку в столбце A и выводит её номер.
Как ускорить работу с большими данными?

При работе с таблицами более 100 000 строк:

  • 🚀 Отключите автоматический пересчёт формул: Формулы → Параметры вычислений → Вручную.
  • 📊 Преобразуйте диапазон в умную таблицу (Ctrl+T).
  • 🔄 Используйте Power Query вместо формул.

7. Сравнение методов: какой выбрать?

Чтобы вам было проще ориентироваться, мы собрали все методы в одну таблицу:

Метод Подходит для Учитывает пустые ячейки? Работает с фильтром? Сложность
Выделение диапазона Быстрой оценки Да Нет
СЧЁТЗ Подсчёта непустых ячеек Нет Нет ⭐⭐
ПОИСКПОЗ + ИСТИНА Подсчёта до первой пустой ячейки Нет Нет ⭐⭐⭐
СЧЁТЕСЛИ/СЧЁТЕСЛИМН Условного подсчёта Зависит от условия Нет ⭐⭐
ПРОМЕЖУТОЧНЫЕ.ИТОГИ Отфильтрованных данных Нет Да ⭐⭐⭐
Формулы массива Сложных условий Зависит от формулы Нет ⭐⭐⭐⭐
Power Query Очень больших данных Нет Да (с настройкой) ⭐⭐⭐⭐

Критически важно: Если вы работаете с динамическими данными (например, импортируете их из базы), используйте Power Query или ПРОМЕЖУТОЧНЫЕ.ИТОГИ. Стандартные функции (СЧЁТЗ, СЧЁТЕСЛИ) не обновляются автоматически при изменении источника!

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

🔍 Как посчитать строки в Google Sheets?

В Google Sheets работают те же функции, но с английскими названиями:

  • =COUNTA(A2:A100) — аналог СЧЁТЗ.
  • =COUNTIF(A2:A100;">1000") — аналог СЧЁТЕСЛИ.
  • =SUBTOTAL(3; A2:A100) — для отфильтрованных данных.

⚠️ Важно: В Google Sheets нет функции ПОИСКПОЗ с массивами (как в Excel 365). Используйте =MATCH(TRUE; A:A=""; 0)-1, но она требует нажатия Ctrl+Shift+Enter.

⚡ Почему СЧЁТЗ считает ячейки с формулами, возвращающими""?

Функция СЧЁТЗ учитывает любые непустые ячейки, включая те, где формула возвращает пустую строку (например, =ЕСЛИ(A1=0;"";"Есть")). Чтобы исключить такие случаи, используйте:

=СУММПРОИЗВ(--(A2:A100<>""))

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

📈 Как посчитать строки в сводной таблице?

В сводной таблице количество строк отображается автоматически в области "Значения" (если добавить поле в эту область и выбрать агрегацию "Количество").

Если нужно посчитать строки по условию:

  1. Добавьте поле в область "Фильтры".
  2. Настройте фильтр по нужному критерию.
  3. В область "Значения" добавьте это же поле с агрегацией "Количество".
🖥️ Можно ли посчитать строки в защищённом листе?

Да, но с ограничениями:

  • СЧЁТЗ, СЧЁТЕСЛИ и другие функции работают, если ячейки не заблокированы для чтения.
  • VBA-макросы не будут выполняться, если лист защищён (если не указан пароль в коде).
  • ⚠️ ПРОМЕЖУТОЧНЫЕ.ИТОГИ работает, но не обновляется при изменении фильтра, если лист защищён.
🔄 Как автоматически обновлять количество строк при добавлении новых данных?

Чтобы количество строк обновлялось автоматически:

  1. Преобразуйте диапазон в умную таблицу (Ctrl+T).
  2. Используйте структурированные ссылки (например, =СЧЁТЗ(Таблица1[Столбец1])).
  3. Для сложных условий настройте Power Query с автоматической загрузкой.

💡 Совет: Если данные импортируются из внешнего источника, настройте "Обновление при открытии файла" (Данные → Свойства соединения).