Как посчитать количество в Excel: строк, ячеек, листов и не только

Почему подсчёт данных в Excel — это не так просто, как кажется

На первый взгляд, посчитать количество чего-либо в Microsoft Excel или Google Таблицах — задача для начинающих. Достаточно выделить диапазон и посмотреть на строку состояния, верно? Но что, если нужно посчитать только ячейки с текстом, игнорируя числа? Или найти количество уникальных значений в столбце с повторяющимися данными? А как быть с скрытыми строками, которые Excel по умолчанию не учитывает?

Эта статья не про банальное использование функции СЧЁТ. Здесь мы разберём 7 профессиональных методов подсчёта, включая малоизвестные функции вроде СЧЁТЕСЛИМН и ЧСТРОК, комбинации с ДСЧЁТ для динамических диапазонов, а также способы автоматизации через Power Query. Вы узнаете, как обойти ловушки Excel (например, почему СЧЁТЗ иногда врёт) и какие горячие клавиши ускорят работу в 3 раза.

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

1. Подсчёт количества строк: от простого к продвинутому

Начнём с базы: как узнать, сколько строк в вашей таблице. Спойлер: вариантов больше, чем вы думаете.

Способ 1. Строка состояния

Самый быстрый метод — выделить диапазон (например, A1:A1000) и посмотреть на правый нижний угол окна Excel. Там отобразится количество выделенных ячеек. Но этот способ не учитывает пустые строки в середине диапазона! Если вам нужно точное число заполненных строк, читаем дальше.

Способ 2. Функция СЧЁТЗ для ненулевых строк

Формула =СЧЁТЗ(A:A) вернёт количество непустых ячеек в столбце A. Однако она считает любые данные, включая текст, числа и даже ошибки вроде #Н/Д. Чтобы посчитать только строки с числами, используйте =СЧЁТ(A:A).

  • 📌 =СЧЁТЗ(A:A) — все непустые ячейки в столбце A
  • 📊 =СЧЁТ(A:A) — только ячейки с числами
  • 🔤 =СЧЁТЕСЛИ(A:A;"*") — только ячейки с текстом
⚠️ Внимание

Функция СЧЁТЗ учитывает ячейки с формулами, которые возвращают пустую строку (=""). Чтобы их исключить, используйте комбинацию =СУММПРОИЗВ(--(A:A<>"")) (требует ввода как формула массива в старых версиях Excel).

Способ 3. ЧСТРОК для динамических диапазонов

Если ваши данные начинаются не с первой строки или заканчиваются не на последней, используйте =ЧСТРОК(A2:A500). Эта функция вернёт количество строк в указанном диапазоне, включая пустые. Для подсчёта только заполненных строк комбинируйте её с СЧЁТЗ:

=ЧСТРОК(A2:INDEX(A:A;ПОИСКПОЗ("";A:A;-1)))

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

📊 Какой метод подсчёта строк вы используете чаще?
Строка состояния
Функция СЧЁТЗ
Горячие клавиши (Ctrl+Shift+↓)
Другое

2. Подсчёт ячеек с конкретными условиями: текст, числа, ошибки

Часто требуется посчитать не все ячейки, а только те, что соответствуют определённым критериям. Здесь на помощь приходят функции СЧЁТЕСЛИ и СЧЁТЕСЛИМН.

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

  • 🔢 =СЧЁТЕСЛИ(A:A; ">100") — ячейки с числами больше 100
  • 📝 =СЧЁТЕСЛИ(B:B; "Да") — ячейки с точным текстом "Да"
  • =СЧЁТЕСЛИ(C:C; "#Н/Д") — ячейки с ошибкой #Н/Д
  • 🔍 =СЧЁТЕСЛИМН(A:A; ">50"; B:B; "Муж") — ячейки в A, где значение >50 и в том же ряду в B стоит "Муж"

Подсчёт уникальных значений

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

=СУММ(1/СЧЁТЕСЛИ(A:A; A:A))

Эту формулу нужно вводить как формулу массива (в старых версиях Excel — нажать Ctrl+Shift+Enter). В новых версиях (Excel 365) она работает автоматически.

⚠️ Внимание

Если в диапазоне есть пустые ячейки, они будут проигнорированы. Чтобы их учесть, модифицируйте формулу: =СУММ(1/СЧЁТЕСЛИ(A:A; A:A&"")).

Задача Формула Пример
Ячейки с текстом =СЧЁТЕСЛИ(A:A; "*") =СЧЁТЕСЛИ(B2:B100; "*")
Ячейки с числами >0 =СЧЁТЕСЛИ(A:A; ">0") =СЧЁТЕСЛИ(C:C; ">1000")
Уникальные значения =СУММ(1/СЧЁТЕСЛИ(A:A; A:A)) =СУММ(1/СЧЁТЕСЛИ(D:D; D:D))
Ячейки с ошибками =СУММПРОИЗВ(--ЕОШ(A:A))) =СУММПРОИЗВ(--ЕОШ(E2:E500)))

Выделите диапазон для анализа

Определите тип данных (текст/число/ошибка)

Выберите функцию (СЧЁТЕСЛИ или СЧЁТЕСЛИМН)

Проверьте результат на тестовых данных-->

3. Подсчёт в отфильтрованных таблицах: почему СЧЁТ не работает

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

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

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

Где 3 — это код операции для функции СЧЁТЗ. Другие полезные коды:

  • 🔢 2СЧЁТ (только числа)
  • 📊 9СУММ
  • 🔤 102СЧЁТЗ (включая скрытые строки, но с игнорированием фильтра)

Пример: Если у вас таблица с данными о продажах (столбцы: A — дата, B — сумма), и вы отфильтровали её по дате, то формула =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3; B:B) вернёт количество видимых ячеек в столбце B.

⚠️ Внимание

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

4. Подсчёт количества листов в книге: обходим ограничения Excel

Удивительно, но в Excel нет встроенной функции для подсчёта количества листов в книге. Однако есть несколько обходных путей:

Способ 1. Ручной подсчёт

Просто посмотрите на ярлыки листов в нижней части окна. Но если листов много (например, 50+), это неудобно.

Способ 2. Формула с ДВССЫЛ (только для Excel)

Используйте эту формулу массива:

=СЧИТАТЬПУСТОТЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ФОРМУЛА.ТЕКСТ(ДВССЫЛ("лист1:лист"&СЧЁТЗ(1/ЕСЛИОШИБКА(1/ПОИСК("лист";ИМЯЛИСТА(СТРОКА(ДВССЫЛ("1:100")));1));0))));"лист";"");"!";""));1)

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

Способ 3. VBA-макрос

Если вам часто нужно считать листы, добавьте в книгу этот макрос:

Function CountSheets() As Long

CountSheets = ThisWorkbook.Sheets.Count

End Function

Теперь в любой ячейке можно использовать формулу =CountSheets(), и она вернёт количество листов.

Почему в Excel нет функции для подсчёта листов?

Исторически Excel позиционировался как инструмент для работы с данными внутри листов, а не для управления структурой книги. Microsoft предполагала, что пользователи будут использовать VBA для таких задач. Однако в Google Таблицах эта функция появилась в 2020 году как =ЧИСЛОЛИСТОВ()

5. Горячие клавиши и скрытые функции для быстрого подсчёта

Экономия времени — ключевой навык при работе с Excel. Вот 5 горячих клавиш, которые ускорят подсчёт данных:

  • 🔍 Ctrl + Shift + ↓ — выделить все ячейки в столбце до последней непустой
  • 📊 Alt + = — быстро вставить функцию СУММ (работает и для СЧЁТ в некоторых версиях)
  • 🔢 Ctrl + ; — вставить текущую дату (полезно для подсчёта записей по датам)
  • 🔤 F5 → Специальная вставка → Пустые ячейки — выделить все пустые ячейки в диапазоне
  • 📝 Ctrl + Shift + L — включить/выключить фильтр (для работы с ПРОМЕЖУТОЧНЫЕ.ИТОГИ)

Скрытые функции:

  • 🕵️ =ЧИСЛОПУСТОТ(A:A) — посчитать пустые ячейки в диапазоне
  • 📈 =МАКС(ЕСЛИ(A:A<>""; СТРОКА(A:A))) — найти номер последней непустой строки (формула массива)
  • 🔄 =СЧЁТЕСЛИМН(A:A; "<>#Н/Д"; B:B; "<>") — посчитать строки без ошибок и пустых ячеек в столбце B

Бонус: Подсчёт цветных ячеек

Excel не умеет считать ячейки по цвету фона стандартными функциями. Но можно использовать условное форматирование + фильтр или VBA. Например, этот макрос посчитает ячейки с красным фоном в диапазоне A1:A100:

Function CountRedCells(rng As Range) As Long

Dim cl As Range, cnt As Long

For Each cl In rng

If cl.Interior.Color = RGB(255, 0, 0) Then cnt = cnt + 1

Next cl

CountRedCells = cnt

End Function

Используйте в ячейке как =CountRedCells(A1:A100).

6. Подсчёт данных в сводных таблицах: тонкости и лайфхаки

Сводные таблицы — мощный инструмент для анализа данных, но подсчёт в них имеет свои нюансы. Например, по умолчанию сводная таблица показывает СУММУ, а не КОЛИЧЕСТВО.

Как изменить агрегацию на подсчёт:

  1. Щёлкните правой кнопкой по ячейке в области "Значения".
  2. Выберите "Параметры полей значений".
  3. В разделе "Операция" выберите "Количество".

Подсчёт уникальных значений в сводной таблице

Чтобы посчитать уникальные значения (например, количество уникальных клиентов), добавьте поле в область "Значения", затем:

  1. Щёлкните по нему правой кнопкой → "Параметры полей значений".
  2. Выберите "Дополнительные параметры".
  3. Поставьте галочку "Только уникальные значения".

Динамический подсчёт с помощью ДСЧЁТ

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

=ДСЧЁТ(Сводка!$A$1; "Регион"; "Москва")

Где Сводка!$A$1 — адрес сводной таблицы, а "Регион" — название поля.

7. Автоматизация подсчёта через Power Query

Power Query (или "Get & Transform" в новых версиях Excel) — это инструмент для импорта и преобразования данных. Он умеет не только очищать данные, но и автоматически подсчитывать строки, уникальные значения и многое другое.

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

  1. Выделите ваши данные и перейдите на вкладку Данные → Из таблицы/диапазона.
  2. В открывшемся редакторе Power Query выделите столбец, по которому нужно посчитать уникальные значения.
  3. Нажмите Главная → Группировка.
  4. В окне группировки выберите "Количество строк" и нажмите ОК.

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

  • 🔄 Автоматическое обновление при изменении исходных данных.
  • 📊 Возможность подсчёта по нескольким критериям одновременно.
  • 🔍 Фильтрация и очистка данных перед подсчётом.

Пример кода M для подсчёта строк:

Если вы предпочитаете писать код вручную, используйте этот запрос в Power Query:

let

Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],

ПодсчётСтрок = Table.RowCount(Источник)

in

ПодсчётСтрок

Этот код вернёт количество строк в таблице Таблица1.

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

Как посчитать количество ячеек с определённым текстом, если регистр важен?

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

=СУММ(--(ЕСЛИОШИБКА(НАЙТИ("Текст"; A:A); 0) = 1))

Для точного совпадения с учётом регистра в Excel 365: =СЧЁТЕСЛИ(A:A; "Текст"; ; ИСТИНА) (последний аргумент ИСТИНА включает чувствительность к регистру).

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

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

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

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

Как посчитать количество ячеек с условным форматированием?

Стандартными функциями это сделать нельзя. Используйте VBA-макрос:

Function CountFormattedCells(rng As Range) As Long

Dim cell As Range, cnt As Long

For Each cell In rng

If cell.DisplayFormat.Interior.Color <> xlNone Then cnt = cnt + 1

Next cell

CountFormattedCells = cnt

End Function

В ячейке используйте =CountFormattedCells(A1:A100).

Можно ли посчитать количество символов во всех ячейках диапазона?

Да, используйте формулу массива:

=СУММ(ДЛСТР(A:A))

Для Excel 365 или Google Таблиц достаточно просто ввести эту формулу. В старых версиях Excel нажмите Ctrl+Shift+Enter.

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

В Google Таблицах есть встроенная функция:

=ЧИСЛОЛИСТОВ()

Она вернёт количество листов в текущей книге. Также можно использовать =ARRAYFORMULA(COUNTA(ИМЯЛИСТА()))) для подсчёта с выводом имён листов.