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

Почему стандартный подсчёт строк в Excel часто даёт сбои

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

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

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

Способ 1: Простой подсчёт всех строк в диапазоне

Если вам нужно узнать общее количество строк в заданном диапазоне (например, от A1 до A100), используйте самую простую формулу:

=СТРОКА(A100)-СТРОКА(A1)+1

Эта формула работает по принципу: номер последней строки минус номер первой строки плюс единица (чтобы учесть обе границы). Например, для диапазона A5:A20 результат будет 16 строк.

  • ✅ Подходит для статических диапазонов с известными границами
  • ✅ Работает в любых версиях Excel (включая Excel 2003)
  • ❌ Не учитывает пустые строки внутри диапазона
  • ❌ Требует ручного обновления при изменении границ

Если ваш диапазон имеет имя (например, Таблица1), формулу можно адаптировать:

=СТРОКА(ДВССЫЛ("Таблица1"))-СТРОКА(ИНДЕКС(Таблица1;1;1))+1
📊 Какой версией Excel вы чаще всего пользуетесь?
Excel 2010-2016
Excel 2019/2021
Excel 365 (онлайн/десктоп)
LibreOffice Calc
Другой

Способ 2: Подсчёт непустых строк с помощью СЧЁТЗ

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

=СЧЁТЗ(A:A)

Но здесь есть критическая особенность: если в столбце есть формулы, возвращающие пустую строку (""), СЧЁТЗ посчитает их как непустые! Чтобы обойти это, комбинируйте её с СЧИТАТЬПУСТОТЫ:

=СЧЁТЗ(A:A)-СЧИТАТЬПУСТОТЫ(A:A)
ФункцияЧто считаетПримерОсобенности
СЧЁТЗВсе непустые ячейки=СЧЁТЗ(A:A)Считает ячейки с формулами, возвращающими ""
СЧИТАТЬПУСТОТЫПустые ячейки=СЧИТАТЬПУСТОТЫ(A:A)Не считает ячейки с "" как пустые
СЧЁТЯчейки с числами=СЧЁТ(A:A)Игнорирует текст и пустые ячейки
⚠️ Внимание: Если ваш столбец содержит объединённые ячейки, СЧЁТЗ посчитает их как одну ячейку, даже если визуально они занимают несколько строк. В этом случае используйте СТРОКА с корректировкой на объединения.

Способ 3: Динамический подсчёт строк в таблице Excel

Если ваши данные оформлены как умная таблица Excel (вкладка Вставка → Таблица), то количество строк всегда можно получить автоматически — даже при добавлении новых данных. Для этого:

  1. Выделите любую ячейку в таблице
  2. Введите формулу: =СТРОКА(Таблица1[#Все]) (где Таблица1 — имя вашей таблицы)
  3. Нажмите Ctrl+Shift+Enter, если используете старую версию Excel

Преимущество этого метода в том, что он автоматически обновляется при добавлении или удалении строк. Нет нужды править формулы вручную!

Ячейки оформлены как таблица Excel (вкладка "Вставка → Таблица")

У таблицы есть уникальное имя (не "Таблица1", а например "Продажи_2026")

В таблице нет пустых строк между данными

Формула введена как формула массива (в старых версиях Excel)-->

Для подсчёта строк с учётом фильтра используйте:

=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3;Таблица1[Столбец1])

Способ 4: Подсчёт строк с условием (фильтрация данных)

Часто требуется посчитать не все строки, а только те, что соответствуют определённому условию. Например, количество строк, где в столбце B значение больше 100. Для этого используйте СЧЁТЕСЛИ или СЧЁТЕСЛИМН:

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

=СЧЁТЕСЛИМН(B:B; ">100"; C:C; "Да")

Но что если условие сложнее? Например, нужно посчитать строки, где или столбец B больше 100, или столбец C содержит "Утверждено". Здесь поможет комбинация функций:

=СУММПРОИЗВ((B:B>100)+(C:C="Утверждено"))
⚠️ Внимание: Формулы массива (как СУММПРОИЗВ) могут значительно тормозить большие файлы. Если ваша таблица содержит более 100 000 строк, используйте СЧЁТЕСЛИ для каждого условия отдельно и складывайте результаты.

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

=СЧЁТЕСЛИ(A:A; "привет*")  

=СЧЁТЕСЛИ(A:A; "мир")

Способ 5: Подсчёт видимых строк (с учётом фильтра)

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

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

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

Коды функций для ПРОМЕЖУТОЧНЫЕ.ИТОГИ:

  • 1СРЗНАЧ
  • 2СЧЁТ
  • 3СЧЁТЗ
  • 9СУММ
  • 101СРЗНАЧ (игнорирует скрытые)
  • 102СЧЁТ (игнорирует скрытые)

Если вам нужно посчитать видимые строки с условием, комбинируйте ПРОМЕЖУТОЧНЫЕ.ИТОГИ с ЕСЛИ:

=СУММПРОИЗВ(--(ПОДИТОГ(103;ДВССЫЛ("A"&ПОИСКПОЗ(A1:A100;A:A;0)))=A1:A100);--(B1:B100="Условие"))
Почему ПРОМЕЖУТОЧНЫЕ.ИТОГИ иногда возвращает 0?

Это происходит, если:

1. К таблице не применён фильтр (все строки видимы, но функция ожидает фильтрацию)

2. Диапазон содержит ошибки (#Н/Д, #ЗНАЧ! и т.д.)

3. В настройках Excel отключены промежуточные итоги (вкладка "Файл → Параметры → Формулы")

Решение: проверьте, применён ли фильтр, и используйте ЕСЛИОШИБКА для обработки ошибок.

Способ 6: Подсчёт строк с учётом цвета или форматирования

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

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

  1. Нажмите Alt+F11, чтобы открыть редактор VBA
  2. Вставьте код в модуль (Insert → Module)
  3. Вернитесь в Excel и используйте формулу: =CountColoredRows(A1:A100;B1), где B1 — ячейка с нужным цветом

Для подсчёта по цвету шрифта замените Interior.Color на Font.Color.

⚠️ Внимание: Пользовательские функции VBA не работают в веб-версии Excel 365 и на мобильных устройствах. Также они могут блокироваться корпоративными политиками безопасности.

Способ 7: Подсчёт строк в сводной таблице

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

  1. Через поле значений:
    1. Добавьте любое поле в область "Значения"
    2. Нажмите на стрелочку рядом с полем → "Параметры полей значений"
    3. Выберите "Количество" вместо "Сумма"
  2. Через формулу:

    Используйте СЧЁТЕСЛИ для столбца с уникальными идентификаторами:

    =СЧЁТЕСЛИ(Лист1!A:A; ">0")

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

=ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ("Количество строк")

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

Частые ошибки и как их избежать

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

ОшибкаПричинаРешение
#ЗНАЧ! в СЧЁТЕСЛИНекорректный диапазон или условиеПроверьте синтаксис условия (например, ">100" вместо >100)
Формула считает пустые строкиВ ячейках есть невидимые символы (пробелы, табуляции)Используйте =СЧЁТЕСЛИ(A:A; "<>""") или СЖПРОБЕЛЫ
#ССЫЛКА! в ДВССЫЛНекорректная ссылка на диапазонПроверьте имя диапазона или таблицы на опечатки
Формула не обновляетсяОтключён автоматический пересчётВключите в Формулы → Параметры вычислений → Автоматически

Ещё одна типичная проблема — скрытые строки. Если вы используете СТРОКА для подсчёта, она вернёт физическое количество строк, включая скрытые. Чтобы их исключить:

=СУММ(--(СТРОКА(A1:A100);ПОДИТОГ(103;A1:A100)))

И наконец, самый надёжный способ проверить правильность подсчёта — сравнить результат формулы с ручным подсчётом в небольшом диапазоне (например, A1:A10). Если числа совпадают, формулу можно масштабировать на большие данные.

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

Можно ли посчитать строки в Excel без формул?

Да, есть несколько способов:

  1. Выделите диапазон → посмотрите количество строк в строке состояния (внизу окна Excel)
  2. Используйте горячие клавиши: Ctrl+Shift+↓ (выделит все непустые ячейки в столбце) + посмотрите количество в строке состояния
  3. Для таблиц Excel: выделите таблицу → вкладка "Конструктор" → в группе "Свойства" указано количество строк

Однако эти методы не учитывают условия или фильтры, поэтому для сложных задач формулы надёжнее.

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

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

Чтобы обойти это, используйте:

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

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

Как посчитать строки в Google Таблицах?

В Google Sheets работают те же принципы, но есть нюансы:

  • Функция СЧЁТЗ называется COUNTA
  • Для динамических диапазонов используйте =ROWS(FILTER(A:A; A:A<>""))
  • Функции массива (как СУММПРОИЗВ) работают без Ctrl+Shift+Enter

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

=СУММ(ФИЛЬТР(--(A:A="Условие");СТРОКА(A:A)<=МАКС(ФИЛЬТР(СТРОКА(A:A);A:A<>""))))
Можно ли посчитать строки в защищённом листе?

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

  • Стандартные функции (СЧЁТЗ, СТРОКА) работают без изменений
  • Функции массива могут требовать разрешения на выполнение (зависит от настроек защиты)
  • VBA-функции не будут работать, если макросы отключены

Если вам нужно посчитать строки в защищённом листе с условием, используйте СЧЁТЕСЛИ — это самая надёжная функция в таких случаях.

Как посчитать строки в нескольких листах?

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

=СУММ(СЧЁТЗ(Лист1:Лист5!A:A))

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

=СУММ(СЧЁТЕСЛИ(Лист1:Лист3!B:B; ">100"))

Обратите внимание: такой подсчёт может быть ресурсоёмким для больших файлов. В этом случае лучше использовать Power Query для объединения данных перед подсчётом.