Как посчитать количество ячеек с определенным текстом в одном столбце Excel

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

На первый взгляд задача кажется простой, но в Excel есть несколько способов ее решения — от элементарных функций до продвинутых формул с условиями. Выбор метода зависит от версии программы (2010, 2016, 2019 или Microsoft 365), структуры данных и даже от того, нужно ли учитывать регистр или частичные совпадения. В этой статье мы разберем все актуальные способы, их плюсы и минусы, а также типичные ошибки, которые мешают получить правильный результат.

1. Простейший способ: функция СЧЁТЕСЛИ для точного совпадения

Если вам нужно посчитать ячейки, которые полностью совпадают с искомым текстом (включая регистр и пробелы), достаточно одной функции — СЧЁТЕСЛИ. Это базовый инструмент, который работает во всех версиях Excel, начиная с 2003 года. Синтаксис функции прост:

=СЧЁТЕСЛИ(диапазон; критерий)

Где:

  • 📌 диапазон — столбец или его часть, в которой ведется поиск (например, A2:A100).
  • 🔍 критерий — текст, который нужно найти. Важно: текст должен быть заключен в кавычки (например, "Да" или "Нет").

Пример: чтобы посчитать, сколько раз в столбце BB2 по B50) встречается слово «Утверждено», используйте:

=СЧЁТЕСЛИ(B2:B50; "Утверждено")

Функция СЧЁТЕСЛИ чувствительна к регистру? Нет, она игнорирует разницу между заглавными и строчными буквами. То есть формула =СЧЁТЕСЛИ(A2:A10; "да") посчитает и «Да», и «ДА», и «дА». Если это критично, читайте раздел про СЧЁТЕСЛИМН с дополнительными условиями.

⚠️ Внимание: Если в ячейке есть пробелы до или после текста (например, " Да " вместо "Да"), функция СЧЁТЕСЛИ не посчитает их как совпадение. Используйте СЖПРОБЕЛЫ для очистки данных перед подсчетом.

2. Подсчет частичных совпадений: символы подстановки * и ?

Часто требуется найти ячейки, которые содержат фрагмент текста, а не точное совпадение. Например, посчитать все строки с упоминанием слова «отчет» в любом падеже («отчет», «отчета», «отчету») или с определенным префиксом («Артикул-123», «Артикул-456»). Для этого в Excel используются символы подстановки:

  • 🌟 * — заменяет любое количество символов (включая их отсутствие). Например, "отчет" найдет «ежемесячный отчет», «отчет готов», «отчет».
  • 🔠 ? — заменяет ровно один символ. Например, "отч?т" найдет «отчет» и «отчёт», но не «отчета».

Пример формулы для поиска всех ячеек, содержащих слово «заказ» в любом контексте:

=СЧЁТЕСЛИ(A2:A100; "заказ")

Важно: символы подстановки работают только с текстовыми значениями. Если в ячейке число (например, 123), формула =СЧЁТЕСЛИ(A2:A10; "1") его не найдет. Для чисел используйте другие методы (см. раздел про СЧЁТЕСЛИМН).

Пример критерияЧто найдетЧто не найдет
"отчет"«Годовой отчет», «отчет по продажам»«Отчета нет» (если регистр важен)
"???отчет"«Мой отчет», «Ваш отчет»«Отчет» (слишком короткое)
"*123"«Артикул-123», «Заказ 123»Число 123 (без текста)
📊 Какой символ подстановки вы используете чаще?
*
?
Оба поровну
Не использую

3. Учет регистра: формула массива с НАЙТИ и СТРОЧН

По умолчанию Excel игнорирует регистр при поиске текста. Но что делать, если нужно посчитать только ячейки с точным совпадением регистра? Например, отличать «Да» от «да» или «ИП Иванов» от «ИП иванов». Для этого потребуется формула массива с комбинацией функций СУММ, НАЙТИ и СТРОЧН.

Общий вид формулы:

=СУММ(--(НАЙТИ("искомый_текст"; диапазон)=1))

Но этот вариант чувствителен к положению текста в ячейке. Более универсальное решение:

=СУММ(--(диапазон="искомый_текст"))

Введите эту формулу как формулу массива (в старых версиях Excel — нажмите Ctrl+Shift+Enter, в новых — просто Enter). Пример для подсчета точного совпадения «Да» (с заглавной буквы) в столбце B:

=СУММ(--(B2:B50="Да"))
Почему формула возвращает 0, если данные есть?

Если результат формулы массива равен 0, проверьте:

1. Нет ли скрытых символов (пробелов, неразрывных пробелов, переносов строк). Используйте =ПЕЧСИМВ(B2) для диагностики.

2. Совпадает ли регистр точно. Например, "Да" ≠ "ДА".

3. Ячейки отформатированы как текст, а не как числа или даты.

Для частичных совпадений с учетом регистра используйте комбинацию НАЙТИ и ЕЧИСЛО:

=СУММ(--ЕЧИСЛО(НАЙТИ("текст"; диапазон)))
⚠️ Внимание: Формулы массива могут значительно замедлить работу книги, если применены к большим диапазонам (более 10 000 строк). В Excel 365 используйте динамические массивы для оптимизации.

4. Продвинутый подсчет: функция СЧЁТЕСЛИМН для нескольких условий

Функция СЧЁТЕСЛИМН (в английской версии — COUNTIFS) позволяет задавать несколько критериев одновременно. Это полезно, если нужно посчитать ячейки с определенным текстом и дополнительными условиями. Например, найти все «Утверждено» в столбце B, но только для строк, где в столбце A указан «2026 год».

Синтаксис:

=СЧЁТЕСЛИМН(диапазон1; критерий1; [диапазон2; критерий2]; ...)

Примеры:

  • 📅 Подсчет «Да» в столбце C, если в столбце B стоит «Январь»:
    =СЧЁТЕСЛИМН(B2:B100; "Январь"; C2:C100; "Да")
  • 📊 Подсчет ячеек с текстом, содержащим «error», но только для значений > 100 в столбце D:
    =СЧЁТЕСЛИМН(D2:D100; ">100"; A2:A100; "error")

СЧЁТЕСЛИМН поддерживает символы подстановки (* и ?) так же, как и СЧЁТЕСЛИ. Главное преимущество — возможность комбинировать текстовые и числовые условия.

Удалите лишние пробелы с помощью =СЖПРОБЕЛЫ()

Проверьте формат ячеек (текст/число/дата)

Убедитесь, что диапазоны условий одинакового размера

Используйте абсолютные ссылки ($A$2:$A$100) для копирования формулы

-->

5. Альтернативные методы: СУММПРОИЗВ и фильтр

Если стандартные функции не подходят (например, нужно учитывать несколько частичных совпадений или работать с динамическими диапазонами), на помощь приходит СУММПРОИЗВ. Эта функция умножает массивы и возвращает сумму произведений, но ее можно адаптировать для подсчета текста.

Пример: подсчет ячеек, содержащих «ургентно» или «срочно»:

=СУММПРОИЗВ(--(ЕЧИСЛО(НАЙТИ("ургентно"; A2:A100))+ЕЧИСЛО(НАЙТИ("срочно"; A2:A100))))

Еще один способ — использовать фильтр:

1. Выделите столбец с данными.

2. Нажмите Данные → Фильтр (или Ctrl+Shift+L).

3. В выпадающем списке выберите «Текстовые фильтры → Содержит» и введите искомый текст.

4. Скопируйте отфильтрованные строки в новый лист и используйте =СЧЁТЗ для подсчета.

Минус этого метода — он требует ручных действий и не обновляется автоматически при изменении данных. Зато визуально нагляден для проверки результатов.

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

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

ОшибкаПричинаРешение
Формула возвращает 0, хотя данные естьСкрытые символы (пробелы, табуляции)Используйте =СЖПРОБЕЛЫ() или =ПЕЧСИМВ() для диагностики
Не учитываются ячейки с формуламиСЧЁТЕСЛИ работает только с фактическими значениямиПреобразуйте формулы в значения (Копировать → Специальная вставка → Значения)
Ошибка #ЗНАЧ! при использовании символов * или ?Кавычки не закрыты или лишниеПроверьте синтаксис: "текст", а не текст
Медленная работа книгиСлишком много формул массиваЗамените на СЧЁТЕСЛИМН или используйте Power Query

Еще одна ловушка — ячейки с ошибками (например, #Н/Д или #ДЕЛ/0!). Функции СЧЁТЕСЛИ и СЧЁТЕСЛИМН игнорируют их, но если нужно посчитать и ошибки, используйте:

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

Эта формула вернет количество непустых ячеек, включая текст, числа и ошибки.

7. Автоматизация: макрос для подсчета текста

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

Sub CountExactText()

Dim rng As Range

Dim count As Long

Dim searchText As String

On Error Resume Next

Set rng = Selection

On Error GoTo 0

If rng Is Nothing Then Exit Sub

searchText = InputBox("Введите текст для поиска:", "Подсчет точного текста")

If searchText = "" Then Exit Sub

count = 0

For Each cell In rng

If cell.Value = searchText Then

count = count + 1

End If

Next cell

MsgBox "Найдено совпадений: " & count, vbInformation

End Sub

Чтобы использовать макрос:

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

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

⚠️ Внимание: Макросы работают только в файлах с расширением .xlsm (с поддержкой макросов). При открытии такого файла Excel может показать предупреждение о безопасности — разрешите выполнение макросов, только если доверяете источнику.

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

Можно ли посчитать ячейки с текстом, если в них есть и числа? Например, "Заказ 123".

Да, функции СЧЁТЕСЛИ и СЧЁТЕСЛИМН работают с текстовыми строками, содержащими числа. Главное, чтобы ячейка была отформатирована как текст. Пример:

=СЧЁТЕСЛИ(A2:A100; "Заказ")

Эта формула посчитает все ячейки, содержащие слово «Заказ», независимо от чисел после него.

Как посчитать уникальные текстовые значения в столбце?

Для подсчета уникальных значений используйте комбинацию ЧАСТОТА и СУММПРОИЗВExcel 365 — функцию УНИК):

=СУММ(--(ЧАСТОТА(СМЕЩ(диапазон;;;СЧЁТЗ(диапазон)); СМЕЩ(диапазон;;;СЧЁТЗ(диапазон)))>0))

Или проще — скопируйте столбец на новый лист и используйте Удалить дубликаты (Данные → Удалить дубликаты), затем посчитайте оставшиеся строки.

Почему СЧЁТЕСЛИ не считает ячейки с формулами, возвращающими текст?

Функция СЧЁТЕСЛИ анализирует отображаемые значения, а не формулы. Если ячейка содержит формулу =ЕСЛИ(A1>10; "Да"; "Нет"), а результат отображается как «Да», то СЧЁТЕСЛИ посчитает ее корректно. Проблемы возникают, если:

  • Формула возвращает ошибку (#Н/Д, #ЗНАЧ! и т.д.).
  • Ячейка отформатирована как число, но содержит текст (например, '123 вместо 123).
  • Включен режим показа формул (Ctrl+`).

Решение: преобразуйте формулы в значения (Копировать → Специальная вставка → Значения).

Как посчитать текст в фильтрованном диапазоне?

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

  1. Примените фильтр к данным.
  2. Выделите видимый диапазон (без скрытых строк).
  3. Используйте функцию ПРОМЕЖУТОЧНЫЕ.ИТОГИ:
    =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3; диапазон)

    где 3 — код операции для подсчета видимых ячеек.

Для текстовых критериев комбинируйте с СЧЁТЕСЛИ в формуле массива.

Есть ли разница между СЧЁТЕСЛИ в Excel и Google Sheets?

Основной синтаксис одинаков, но есть нюансы:

  • В Google Sheets СЧЁТЕСЛИ (COUNTIF) поддерживает регулярные выражения (регулярки) для сложного поиска. Например, =COUNTIF(A2:A100; "=regexmatch(.*, ""отчет"")").
  • В Excel для аналогичного результата потребуется Power Query или VBA.
  • Google Sheets автоматически обновляет ссылки при добавлении строк, тогда как в Excel диапазоны часто приходится расширять вручную.