Работа с текстовыми данными в Microsoft Excel — одна из самых частых задач, с которыми сталкиваются пользователи. Вы можете анализировать отзывы клиентов, обрабатывать анкеты сотрудников или просто сортировать данные по категориям. Но как быстро узнать, сколько ячеек в вашей таблице содержат именно текст, а не числа или пустые значения? Этот вопрос возникает гораздо чаще, чем кажется: от простых отчётов до сложных аналитических дашбордов.
Многие ошибочно думают, что для подсчёта текстовых ячеек достаточно стандартной функции СЧЁТ или СЧЁТЗ, но эти инструменты работают только с числовыми данными. Другие пытаются вручную просматривать тысячи строк, тратя часы на монотонную работу. На самом деле в Excel есть несколько эффективных способов автоматизировать этот процесс — от элементарных функций до продвинутых комбинаций формул. В этой статье мы разберём их все, чтобы вы могли выбрать оптимальный метод для своей задачи.
Особенно актуальна эта тема для тех, кто работает с большими массивами данных: маркетологи, аналитики, HR-специалисты. Например, при обработке результатов опроса важно быстро отделить текстовые ответы от числовых оценок, а при аудите базы клиентов — выявить ячейки с некорректными данными (когда вместо цифр введены слова). Даже если вы новичок в Excel, после прочтения этой статьи вы сможете уверенно применять любые методы подсчёта текстовых ячеек.
1. Базовый метод: функция СЧЁТЕСЛИ для текстовых данных
Начнём с самого простого и универсального способа — функции СЧЁТЕСЛИ. Она позволяет подсчитывать ячейки, соответствующие заданному критерию. Для текстовых данных критерием может быть конкретное слово, символ или даже шаблон с подстановочными знаками.
Формула имеет следующий синтаксис:
=СЧЁТЕСЛИ(диапазон; критерий)
Где диапазон — это область ячеек, которую вы анализируете, а критерий — условие для текста. Например, чтобы посчитать все ячейки с словом "Да" в столбце A, используйте:
=СЧЁТЕСЛИ(A:A; "Да")
Но что делать, если вам нужно посчитать все текстовые ячейки, а не только с конкретным словом? Здесь на помощь приходят подстановочные знаки:
- 🔹
— заменяет любое количество символов (включая ноль). Формула=СЧЁТЕСЛИ(A:A; "")посчитает все непустые ячейки, но это включает и числа! - 🔹
?— заменяет ровно один символ. Полезно для поиска ячеек с определённой длиной текста.
Чтобы исключить числа, комбинируйте СЧЁТЕСЛИ с функцией ЕТЕКСТ (о ней поговорим позже) или используйте более сложные критерии. Например, формула ниже посчитает ячейки, которые не являются числами и не пустые:
=СЧЁТЕСЛИ(A:A; "<>") - СЧЁТ(A:A)
⚠️ Внимание: ФункцияСЧЁТЕСЛИне различает регистр букв. Если вам нужно учитывать регистр (например, отличать "Да" от "да"), используйтеСЧЁТЕСЛИМНс дополнительными условиями.
2. Продвинутый подход: комбинация ЕТЕКСТ и СУММПРОИЗВ
Когда стандартные функции не справляются с задачей, на помощь приходят их комбинации. Одним из самых надёжных способов подсчёта текстовых ячеек является сочетание функций ЕТЕКСТ (проверяет, является ли значение текстом) и СУММПРОИЗВ (суммирует результаты проверок).
Формула выглядит так:
=СУММПРОИЗВ(--ЕТЕКСТ(диапазон))
Разберём её по частям:
ЕТЕКСТ(диапазон)— возвращает массив значенийИСТИНА(если ячейка содержит текст) илиЛОЖЬ(если нет).--— двойное отрицание преобразуетИСТИНА/ЛОЖЬв1/0.СУММПРОИЗВ— суммирует все единицы, давая итоговое количество текстовых ячеек.
Пример для диапазона A1:A100:
=СУММПРОИЗВ(--ЕТЕКСТ(A1:A100))
⚠️ Внимание: Эта формула учитывает пустые ячейки как нетекстовые, но если в ячейке формула, возвращающая пустую строку (=""), тоЕТЕКСТвернётИСТИНА. Чтобы исключить такие случаи, добавьте проверку на длину текста:=СУММПРОИЗВ(--(ЕТЕКСТ(A1:A100)*(ДЛСТР(A1:A100)>0))).
Преимущество этого метода — высокая точность и гибкость. Вы можете легко модифицировать формулу, добавив дополнительные условия. Например, чтобы посчитать текстовые ячейки, содержащие более 5 символов:
=СУММПРОИЗВ(--(ЕТЕКСТ(A1:A100)*ДЛСТР(A1:A100)>5))
3. Использование функции СЧЁТЕСЛИМН для сложных критериев
Если вам нужно посчитать текстовые ячейки, соответствующие нескольким условиям одновременно, на помощь придёт функция СЧЁТЕСЛИМН. Она позволяет задавать критерии для разных диапазонов и идеально подходит для анализа многомерных данных.
Синтаксис функции:
=СЧЁТЕСЛИМН(диапазон_подсчёта; диапазон_критериев1; критерий1; ...)
Например, чтобы посчитать ячейки в столбце B, которые содержат текст "Утверждено" и при этом в соответствующих ячейках столбца A указано "2026":
=СЧЁТЕСЛИМН(B:B; B:B; "Утверждено"; A:A; "2026")
Для подсчёта всех текстовых ячеек с несколькими условиями комбинируйте СЧЁТЕСЛИМН с подстановочными знаками. Например, посчитаем ячейки в диапазоне C1:C100, которые содержат текст и при этом не пустые:
=СЧЁТЕСЛИМН(C1:C100; C1:C100; "*") - СЧЁТЕСЛИМН(C1:C100; C1:C100; "")
Это особенно полезно при работе с отчётами, где текстовые данные распределены по нескольким столбцам. Например, в таблице с заказами вы можете посчитать количество строк, где в столбце "Статус" указано "Отгружено", а в столбце "Комментарий" есть любой текст:
=СЧЁТЕСЛИМН(A:A; "Отгружено"; B:B; "*")
Убедитесь, что в диапазоне нет скрытых символов (пробелов, переносов строк)
Проверьте формат ячеек (текстовый, а не числовой или дата)
Исключите объединённые ячейки — они могут искажать результаты
Сортировка данных не требуется, но упрощает визуальный контроль-->
4. Альтернативные методы: фильтрация и условное форматирование
Не всегда удобно использовать формулы — иногда проще воспользоваться встроенными инструментами Excel. Один из таких способов — фильтрация данных. Вот как это работает:
- Выделите диапазон с данными (включая заголовки).
- Перейдите на вкладку
Данные→Фильтр(или нажмитеCtrl+Shift+L). - Нажмите на стрелку фильтра в заголовке столбца и выберите
Текстовые фильтры→Содержит. - В поле введите
*(звёздочку) и нажмитеOK.
После применения фильтра Excel покажет только текстовые ячейки. Количество отфильтрованных строк будет отображено в статусной строке внизу окна (например, "Записей: 15 из 100"). Этот метод нагляден, но не подходит для автоматизации — придётся повторять действия вручную при каждом обновлении данных.
Ещё один визуальный способ — условное форматирование. Оно поможет выделить текстовые ячейки цветом, чтобы быстро оценить их количество:
- Выделите диапазон.
- Перейдите на вкладку
Главная→Условное форматирование→Создать правило. - Выберите
Использовать формулу для определения форматируемых ячеек. - Введите формулу
=ЕТЕКСТ(A1)(заменитеA1на первую ячейку диапазона). - Задайте формат (например, заливку зелёным цветом) и нажмите
OK.
Теперь все текстовые ячейки будут выделены, и вы сможете посчитать их вручную или использовать функцию СЧЁТЦВЕТ (если она доступна в вашей версии Excel через надстройки).
| Метод | Плюсы | Минусы | Когда использовать |
|---|---|---|---|
СЧЁТЕСЛИ с * |
Простота, скорость | Учитывает числа как текст, если они отформатированы как текст | Быстрый анализ небольших таблиц |
ЕТЕКСТ + СУММПРОИЗВ |
Точность, гибкость | Сложнее для новичков | Сложные критерии, большие массивы данных |
| Фильтрация | Наглядность, нет формул | Ручная работа, не автоматизируется | Разовые проверки, визуальный анализ |
| Условное форматирование | Визуальное выделение | Не даёт числовой результат | Аудит данных, поиск аномалий |
5. Подсчёт текстовых ячеек с учётом регистра
По умолчанию Excel не различает регистр букв в текстовых функциях. Однако иногда это критично — например, при анализе логов систем, где "Ошибка" и "ошибка" могут означать разные уровни важности. Для таких случаев потребуется обходной путь.
Один из способов — использовать функцию НАЙТИ или ПОИСК в комбинации с СУММПРОИЗВ. Например, чтобы посчитать ячейки, содержащие слово "Да" именно с большой буквы:
=СУММПРОИЗВ(--(НАЙТИ("Да"; A1:A100)=1))
Здесь НАЙТИ вернёт позицию искомого текста (начиная с 1) или ошибку, если текст не найден. Двойное отрицание преобразует ошибки в 0, а успешные поиски — в 1.
Для более сложных проверок (например, когда текст может находиться в середине ячейки) используйте:
=СУММПРОИЗВ(--(НЕОШИБКА(ПОИСК("Да"; A1:A100))))
⚠️ Внимание: ФункцияПОИСКчувствительна к регистру, в отличие отНАЙТИ. Если вам нужно учитывать регистр, используйте именноПОИСК:=СУММПРОИЗВ(--(НЕОШИБКА(ПОИСК("Да"; A1:A100))))
Ещё один вариант — создать пользовательскую функцию на VBA, если вы работаете с Excel на Windows. Например, этот код посчитает ячейки с точным совпадением текста с учётом регистра:
Function CountExactText(rng As Range, txt As String) As Long
Dim cell As Range
For Each cell In rng
If cell.Value = txt Then CountExactText = CountExactText + 1
Next cell
End Function
Чтобы использовать её, нажмите Alt+F11, вставьте код в модуль и вызовите функцию в ячейке как =CountExactText(A1:A100; "Да").
Почему ЕТЕКСТ не различает регистр?
Функция ЕТЕКСТ в Excel проверяет тип данных, а не их содержимое. Она возвращает ИСТИНА для любого текста, независимо от регистра, потому что регистр не влияет на тип данных. Для чувствительного к регистру поиска используйте комбинации с ПОИСК или СРАВНИТЬ.
6. Подсчёт текстовых ячеек в отфильтрованных данных
Когда вы работаете с отфильтрованными данными, стандартные функции СЧЁТЕСЛИ или СУММПРОИЗВ учитывают все ячейки, включая скрытые фильтром. Чтобы посчитать только видимые текстовые ячейки, используйте функцию ПРОМЕЖУТОЧНЫЕ.ИТОГИ.
Формула будет такой:
=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(103; диапазон)
Где 103 — это код операции для функции СЧЁТ, но с учётом только видимых ячеек. Однако этот метод не различает текст и числа. Чтобы посчитать именно текстовые ячейки, комбинируйте ПРОМЕЖУТОЧНЫЕ.ИТОГИ с ЕТЕКСТ через массив:
=СУММПРОИЗВ(--(ЕТЕКСТ(диапазон)*ПОДСТАВИТЬ(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(103; СМЕЩ(диапазон; СТРОКА(диапазон)-МИН(СТРОКА(диапазон));;1)); 0; 1)))
Эта формула работает только как формула массива: после ввода нажмите Ctrl+Shift+Enter (в новых версиях Excel подтверждение не требуется).
Пример для диапазона A2:A100:
=СУММПРОИЗВ(--(ЕТЕКСТ(A2:A100)*ПОДСТАВИТЬ(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(103; СМЕЩ(A2:A100; СТРОКА(A2:A100)-2;;1)); 0; 1)))
Если вам нужно посчитать текстовые ячейки в отфильтрованном списке по конкретному критерию (например, только ячейки с словом "Принято"), используйте:
=СУММПРОИЗВ(--((A2:A100="Принято")*ПОДСТАВИТЬ(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(103; СМЕЩ(A2:A100; СТРОКА(A2:A100)-2;;1)); 0; 1)))
7. Автоматизация с помощью Power Query
Для пользователей, работающих с большими объёмами данных, Power Query (вкладка Данные → Получить данные) предлагает мощные инструменты трансформации и анализа. Вот как посчитать текстовые ячейки с его помощью:
- Выделите ваш диапазон и нажмите
Данные→Из таблицы/диапазона(илиПолучить данные→Из таблицы/диапазонав новых версиях). - В открывшемся редакторе Power Query выделите столбец, в котором нужно посчитать текстовые ячейки.
- Перейдите на вкладку
Добавить столбец→Пользовательский столбец. - Введите название нового столбца (например, "IsText") и формулу:
= if Value.Is([YourColumn], type text) then 1 else 0(замените
YourColumnна имя вашего столбца). - Нажмите
OK, затем перейдите на вкладкуГлавная→Закрыть и загрузить в.... - В новой таблице просуммируйте столбец
IsText, чтобы получить количество текстовых ячеек.
Power Query особенно полезен, если вам нужно регулярно обновлять данные и пересчитывать текстовые ячейки. Вы можете сохранить запрос и обновить его одним кликом, не переписывая формулы.
Для более сложных условий используйте язык M в Power Query. Например, чтобы посчитать ячейки, содержащие текст длиной более 10 символов:
= Table.AddColumn(#"Previous Step", "LongText", each if Value.Is(Text.From([YourColumn]), type text) and Text.Length(Text.From([YourColumn])) > 10 then 1 else 0)
8. Типичные ошибки и как их избежать
Даже опытные пользователи Excel иногда сталкиваются с неожиданными результатами при подсчёте текстовых ячеек. Вот самые распространённые ошибки и способы их решения:
- 🔴 Ячейки с формулами, возвращающими текст. Функция
ЕТЕКСТвернётИСТИНАдаже для ячейки с формулой="Текст". Чтобы исключить такие случаи, проверяйте длину текста:=ЕТЕКСТ(A1)*ДЛСТР(A1)>0. - 🔴 Числа, отформатированные как текст. Если в ячейке число хранится как текст (например, после импорта данных),
ЕТЕКСТвернётИСТИНА. Используйте=ЕЧИСЛОдля дополнительной проверки. - 🔴 Скрытые символы. Пробелы, табуляции или непечатаемые символы (например,
CHAR(160)— неразрывный пробел) могут искажать результаты. Очистите данные функцией=СЖПРОБЕЛЫ(A1). - 🔴 Объединённые ячейки. Формулы некорректно работают с объединёнными ячейками. Разъедините их перед подсчётом или используйте VBA.
Чтобы проверить, какие именно ячейки вызывают ошибки, добавьте вспомогательный столбец с формулой:
=ЕСЛИ(ЕТЕКСТ(A1); "Текст"; ЕСЛИ(ЕЧИСЛО(A1); "Число"; "Другое"))
Это поможет визуально идентифицировать проблемные данные.
Ещё одна частая проблема — кэширование формул. Если вы изменили данные, но результат подсчёта не обновился, нажмите 1. Почему функция ЕТЕКСТ возвращает ИСТИНА для пустой ячейки? Это происходит, если ячейка содержит формулу, возвращающую пустую строку (например, 2. Как посчитать текстовые ячейки в диапазоне с ошибками (#Н/Д, #ЗНАЧ!)? Используйте функцию F9 для принудительного пересчёта или проверьте настройки в Формулы → Параметры вычислений.
FAQ: Ответы на частые вопросы
=""). Чтобы исключить такие случаи, добавьте проверку длины: =ЕТЕКСТ(A1)*ДЛСТР(A1)>0.ЕОШИБКА в комбинации с ЕТЕКСТ:
=СУММПРОИЗВ(--(ЕТЕКСТ(A1:A100)*НЕ(ЕОШИБКА(A1:A100))))
3. Можно ли посчитать текстовые ячейки в защищённом листе?
Да, но только если в настройках защиты разрешено использование функций. Если формулы не работают, попросите администратора листа снять ограничения или используйте Power Query.
4. Как посчитать текстовые ячейки в Google Таблицах?
В Google Sheets используйте те же функции, но с английским синтаксисом:
=SUMPRODUCT(--ISTEXT(A1:A100))
или
=COUNTIF(A1:A100; "*") - COUNT(A1:A100)
5. Почему СЧЁТЕСЛИ с критерием "*" считает числа?
Потому что * соответствует любому содержимому, включая числа, отформатированные как текст. Чтобы посчитать только настоящий текст, используйте ЕТЕКСТ.