Как определить количество в Excel: от простого подсчёта до расширенных функций

Почему подсчёт данных в Excel — это не только про функцию СЧЁТ

Вы когда-нибудь тратили часы на ручной подсчёт строк в таблице, пока не поняли, что Excel делает это за секунды? Или пытались посчитать только ячейки с определённым текстом, но получали ошибки? Подсчёт данных в Excel кажется простой задачей — пока не сталкиваешься с нюансами. Например, функция СЧЁТ игнорирует текстовые значения, а СЧЁТЗ учитывает пустые ячейки как ноль. Эти мелочи могут исказить результаты, если не знать, когда и как их применять.

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

  • 🔢 Все заполненные ячейки в диапазоне (включая текст и числа)
  • 📊 Только числовые значения или ячейки с формулами
  • 🔍 Ячейки по условию (например, больше 100 или содержащие слово "Да")
  • 📌 Уникальные значения без повторов

А ещё — как избежать распространённой ошибки с подсчётом скрытых строк, которую допускают даже опытные пользователи.

Способ 1: Простой подсчёт с помощью функции СЧЁТ и СЧЁТЗ

Начнём с базы. Функция СЧЁТ считает только ячейки с числами, игнорируя текст, логические значения (ИСТИНА/ЛОЖЬ) и пустые ячейки. Например, если в диапазоне A1:A5 значения 10, "Привет", 20, , 30, то =СЧЁТ(A1:A5) вернёт 3 (проигнорирует текст и пустую ячейку).

А вот СЧЁТЗ (счёт непустых) учитывает все непустые ячейки, включая текст и формулы, даже если они возвращают пустую строку (""). Для того же диапазона =СЧЁТЗ(A1:A5) даст 4.

📊 Какую функцию подсчёта вы используете чаще?
СЧЁТ
СЧЁТЗ
СЧЁТЕСЛИ
Другую
Не знаю
Функция Считает Игнорирует Пример результата для A1:A5 (10, "Привет", 20, , 30)
СЧЁТ Числа, даты, время Текст, пустые ячейки, ИСТИНА/ЛОЖЬ 3
СЧЁТЗ Все непустые ячейки (включая текст и формулы) Только полностью пустые ячейки 4
СЧИТАТЬПУСТОТЫ Пустые ячейки Ячейки с формулами, возвращающими "" 1

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

  • 📈 СЧЁТ — для подсчёта числовых данных (например, продаж за месяц).
  • 📝 СЧЁТЗ — чтобы узнать, сколько ячеек заполнено (например, сколько анкет возвращено из 100).
  • 🕳️ СЧИТАТЬПУСТОТЫ — для поиска пропусков в данных (например, незаполненных полей в базе).
⚠️ Внимание: Если в ячейке формула, возвращающая "" (пустую строку), СЧИТАТЬПУСТОТЫ её проигнорирует. Чтобы посчитать и такие ячейки, используйте СЧЁТЗ с обратной логикой.

Способ 2: Подсчёт по условию с СЧЁТЕСЛИ и СЧЁТЕСЛИМН

Допустим, вам нужно посчитать не все ячейки, а только те, что удовлетворяют определённому критерию. Например, сколько сотрудников имеют оклад выше 50 000 рублей или сколько заказов статус "Выполнен". Здесь на помощь приходят СЧЁТЕСЛИ (одно условие) и СЧЁТЕСЛИМН (несколько условий).

Синтаксис:

  • =СЧЁТЕСЛИ(диапазон; условие) — например, =СЧЁТЕСЛИ(B2:B100; ">50000").
  • =СЧЁТЕСЛИМН(диапазон_условия1; условие1; [диапазон_условия2; условие2]; ...) — например, =СЧЁТЕСЛИМН(B2:B100; ">30000"; C2:C100; "Да").

Важный нюанс: СЧЁТЕСЛИ поддерживает подстановочные знаки:

  • ? — любой одиночный символ (например, "при?ет" найдёт "привет" и "привет!").
  • * — любая последовательность символов (например, "*ов" найдёт "Иванов", "Петров").

Убедитесь, что диапазон не содержит объединённых ячеек|

Проверьте регистр текста (условия чувствительны к регистру)|

Используйте кавычки для текстовых условий (например, "Да", а не Да)|

Для чисел кавычки не нужны (например, ">100", а не "">100""")-->

Примеры:

=СЧЁТЕСЛИ(A2:A100; "Иванов*")  // Считает все фамилии, начинающиеся на "Иванов"

=СЧЁТЕСЛИМН(B2:B100; ">100"; C2:C100; "<>Отменен") // Считает заказы >100, кроме отменённых

=СЧЁТЕСЛИ(D2:D100; "<>"&TODAY()) // Считает даты, не равные сегодняшней

⚠️ Внимание: Если в условии используете ссылку на ячейку (например, =СЧЁТЕСЛИ(A2:A100; E1), где в E1 записано ">100"), Excel автоматически добавит кавычки. Но если в E1 текст с пробелами (например, "Да, согласен"), формула выдаст ошибку. Решение: =СЧЁТЕСЛИ(A2:A100; ""&E1&"").

Способ 3: Подсчёт уникальных значений — ЧАСТОТА vs УНИК (Excel 365)

Частая задача — посчитать, сколько уникальных значений в списке. Например, сколько разных товаров было продано или сколько уникальных клиентов обратилось в поддержку. В старых версиях Excel для этого приходилось использовать комбинацию ЧАСТОТА с СЧЁТЕСЛИ, а в Excel 365 появилась удобная функция УНИК.

Для Excel 2019 и старше:

  1. Выделите диапазон, где хотите увидеть уникальные значения.
  2. Введите формулу массива: =УНИК(A2:A100) и нажмите Ctrl+Shift+Enter (в Excel 365 просто Enter).
  3. Чтобы посчитать количество уникальных значений, оберните в СЧЁТ: =СЧЁТ(УНИК(A2:A100)).

Для Excel 2016 и ранее:

  1. Создайте вспомогательный столбец с формулой =ЕСЛИОШИБКА(ПОИСКПОЗ(A2; $A$2:A2; 0); 1; 0).
  2. Просуммируйте этот столбец: =СУММ(B2:B100).
Почему ЧАСТОТА не подходит для уникальных значений?

Функция ЧАСТОТА возвращает распределение значений, а не список уникальных. Например, для данных 1, 2, 2, 3 она вернёт массив {1; 2; 1}, где 1 — количество единиц, 2 — количество двоек и т.д. Чтобы получить уникальные значения, нужно комбинировать её с другими функциями, что сложнее, чем УНИК.

Метод Формула Плюсы Минусы
УНИК + СЧЁТ =СЧЁТ(УНИК(A2:A100)) Простота, работает с текстом и числами Только в Excel 365
ПОИСКПОЗ + СУММ =СУММ(ЕСЛИОШИБКА(1/ПОИСКПОЗ(...))) Работает во всех версиях Сложный синтаксис, не учитывает пустые ячейки
Сводная таблица Добавьте поле в область "Значения" и выберите "Количество" Визуально, гибко Требует ручной настройки

Способ 4: Подсчёт цветных ячеек — обходной путь без VBA

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

  1. Фильтр по цвету:
    1. Выделите диапазон → Главная → Сортировка и фильтр → Фильтр.
    2. Нажмите на стрелку фильтра → Фильтр по цвету → Выберите цвет.
    3. Скопируйте отфильтрованные ячейки в новый столбец и используйте СЧЁТЗ.
  2. Условное форматирование + вспомогательный столбец:
    1. Создайте правило условного форматирования для нужного цвета.
    2. Добавьте столбец с формулой, проверяющей цвет (например, через ПОЛУЧИТЬ.ЯЧЕЙКУ в именованном диапазоне).
    3. Используйте СЧЁТЕСЛИ для подсчёта ИСТИНА в вспомогательном столбце.
  3. VBA (для продвинутых):
    Function CountByColor(rng As Range, color As Range) As Long
    

    Dim cl As Range, cnt As Long

    cnt = 0

    For Each cl In rng

    If cl.Interior.Color = color.Interior.Color Then cnt = cnt + 1

    Next cl

    CountByColor = cnt

    End Function

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

⚠️ Внимание: Фильтр по цвету учитывает только ручную заливку, а не цвет, установленный через условное форматирование. Для последнего потребуется VBA или обходной путь со вспомогательным столбцом.

Способ 5: Подсчёт видимых строк (игнорируем скрытые)

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

  • ПРОМЕЖУТОЧНЫЕ.ИТОГИ:
    =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(102; B2:B100)  // 102 — код для функции СЧЁТ
    

    =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(103; B2:B100) // 103 — код для СЧЁТЗ

    Функция автоматически игнорирует скрытые строки (как фильтром, так и вручную).

  • Горячие клавиши: Выделите видимый диапазон → посмотрите количество выделенных ячеек в строке состояния (внизу окна Excel).

Пример: Если в диапазоне B2:B100 50 строк скрыто фильтром, то:

  • =СЧЁТ(B2:B100) → посчитает все 99 ячеек.
  • =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(102; B2:B100) → посчитает только видимые (например, 49).

Способ 6: Подсчёт ячеек с формулами (даже если они возвращают пустоту)

Иногда нужно посчитать ячейки, содержащие формулы, независимо от их результата. Например, чтобы найти "битые" ссылки или формулы, возвращающие пустую строку (""). Стандартные функции здесь не помогут — придётся использовать:

  1. Поиск по специальным символам:
    1. Нажмите Ctrl+F → перейдите на вкладку Заменить.
    2. В поле "Найти" введите = (знак равенства).
    3. В поле "Заменить на" оставьте пустым.
    4. Нажмите Найти все — внизу появится количество найденных ячеек.

    Минус: метод находит все ячейки с формулами, включая те, что возвращают ошибки.

  2. VBA:
    Function CountFormulas(rng As Range) As Long
    

    Dim cell As Range, cnt As Long

    cnt = 0

    For Each cell In rng

    If cell.HasFormula Then cnt = cnt + 1

    Next cell

    CountFormulas = cnt

    End Function

    Использование: =CountFormulas(A1:A100).

  3. Условное форматирование:
    1. Выделите диапазон → Главная → Условное форматирование → Создать правило.
    2. Выберите Использовать формулу... и введите =ЕСЛИ(ЯЧЕЙКА("type"; A1)="f"; 1; 0).
    3. Задайте формат (например, красный фон) и нажмите ОК.
    4. Теперь все ячейки с формулами будут подсвечены.

Важно: Функция ЯЧЕЙКА("type"; A1) возвращает:

  • "b" — пустая ячейка,
  • "l" — текстовая константа,
  • "f" — формула.

Способ 7: Динамические массивы (Excel 365) — подсчёт с фильтрацией

В Excel 365 и Excel 2021 появились динамические массивы — функции, которые возвращают не одно значение, а целый массив. Они упрощают подсчёт с фильтрацией. Например:

  • ФИЛЬТР + СЧЁТ:
    =СЧЁТ(ФИЛЬТР(B2:B100; (B2:B100>100)*(C2:C100="Да")))

    Считает значения в B2:B100, которые >100 и соответствуют "Да" в C2:C100.

  • УНИК + СЧЁТЕСЛИМН:
    =СЧЁТЕСЛИМН(УНИК(A2:A100); УНИК(A2:A100); ">10")

    Считает, сколько уникальных значений в A2:A100 больше 10.

  • СОРТ + ПОСЛЕДНИЙНЕПУСТОЙ:
    =ПОСЛЕДНИЙНЕПУСТОЙ(СОРТ(ЕСЛИ(B2:B100>50; B2:B100; ""); ; -1))

    Найдёт максимальное значение среди ячеек >50 (после сортировки по убыванию).

Преимущества динамических массивов:

  • 🔄 Автоматическое обновление: Результат меняется при изменении исходных данных.
  • 📋 Нет нужды в вспомогательных столбцах: Всё рассчитывается в одной формуле.
  • 🔍 Гибкость: Можно комбинировать с СЧЁТЕСЛИМН, СУММ и другими функциями.
=ИНДЕКС(ФИЛЬТР(B2:B100; B2:B100>100); 1)

Это вернёт первое значение из отфильтрованного массива.-->

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

Как посчитать количество ячеек с ошибками (#Н/Д, #ЗНАЧ! и т.д.)?

Используйте функцию ЕОШИБКА в комбинации с СЧЁТЕСЛИ:

=СЧЁТЕСЛИ(A1:A100; "#Н/Д")  // Считает только #Н/Д

=СУММПРОИЗВ(--ЕОШИБКА(A1:A100)) // Считает все типы ошибок

Второй вариант работает потому, что ЕОШИБКА возвращает ИСТИНА для любой ошибки, а двойной минус (--) преобразует ИСТИНА в 1.

Почему СЧЁТЕСЛИ не считает текст с разным регистром?

Функция СЧЁТЕСЛИ чувствительна к регистру. Например, =СЧЁТЕСЛИ(A1:A10; "Да") не посчитает ячейки с "да" или "ДА". Решения:

  • Приведите текст к одному регистру: =СЧЁТЕСЛИ(ПРОПИСН(A1:A10); "ДА").
  • Используйте СЧЁТЕСЛИМН с несколькими условиями: =СУММ(СЧЁТЕСЛИ(A1:A10; {"Да"; "да"; "ДА"})).
Как посчитать количество слов в ячейке?

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

=ЕСЛИ(A1=""; 0; ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1; " "; ""))+1)

Логика: считаем количество пробелов (ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1; " "; ""))) и прибавляем 1 (так как количество слов = количество пробелов + 1).

Ограничение: Не учитывает знаки препинания (например, "Привет, мир" посчитается как 3 слова). Для точного подсчёта нужен VBA.

Можно ли посчитать количество ячеек с определённым форматом (например, жирный шрифт)?

Стандартными функциями — нет. Но можно через VBA:

Function CountBold(rng As Range) As Long

Dim cell As Range, cnt As Long

cnt = 0

For Each cell In rng

If cell.Font.Bold Then cnt = cnt + 1

Next cell

CountBold = cnt

End Function

Использование: =CountBold(A1:A100). Аналогично можно проверять Font.Italic, Font.Color и другие свойства.

Как посчитать количество уникальных значений с учётом регистра?

Функция УНИК не чувствительна к регистру ("Да" и "да" посчитает как одно значение). Решение:

=СЧЁТ(УНИК(ПОВТОР(A1:A10; 1)))

Здесь ПОВТОР(A1:A10; 1) преобразует текст в массив символов, что заставляет УНИК учитывать регистр. Альтернатива — VBA.