Почему стандартный подсчёт не работает с текстом?
Вы когда-нибудь пытались использовать функцию СЧЁТ для текстовых данных в Excel и получали ноль в результате? Это не ошибка программы — так устроена логика работы. Функция СЧЁТ считает только числовые значения, игнорируя текст, даты и пустые ячейки. Аналогично, СЧЁТЗ подсчитывает все непустые ячейки, но не различает их содержимое.
Проблема усложняется, когда в вашей таблице смешаны данные: например, в колонке "Статус заказа" могут быть значения "Оплачен", "Отменён", числа 123 (номер заказа) и пустые ячейки. Как тогда узнать, сколько именно текстовых записей содержится? Стандартные инструменты Excel здесь бессильны — нужны специальные приёмы.
В этой статье мы разберём 5 рабочих методов подсчёта текстовых значений — от элементарных до продвинутых, которые работают даже с частично заполненными данными. Вы научитесь отличать чистый текст от чисел, форматированных как текст, и избежите типичных ошибок, которые искажают результаты.
Метод 1: Функция СЧЁТЕСЛИ для простого подсчёта
Самый доступный способ — использовать функцию СЧЁТЕСЛИ с критерием "". Этот символ обозначает "любой текст", поэтому формула =СЧЁТЕСЛИ(A1:A10; "") вернёт количество ячеек с хотя бы одним текстовым символом в диапазоне A1:A10.
Преимущество метода:
- ✅ Работает во всех версиях Excel (включая Excel 2003)
- ✅ Простота — не требует знания сложных формул
- ✅ Подсчитывает даже ячейки с пробелами или невидимыми символами
Ограничения:
- ❌ Не различает текст и числа, отформатированные как текст (например,
'123) - ❌ Считает пустые ячейки с формулами, возвращающими текст (например,
=ЕСЛИ(...;"Да";""))
Метод 2: Комбинация функций ЕТЕКСТ и СЧЁТЕСЛИ
Для точного подсчёта только текстовых значений (исключая числа, даты и логические значения) используйте формулу массива:
=СУММ(--ЕТЕКСТ(A1:A10))
Как это работает:
ЕТЕКСТпроверяет каждую ячейку и возвращаетИСТИНА(1), если содержимое — текст.--преобразует логические значения в числа (1/0).СУММскладывает все единицы, давая итоговое количество.
Пример: если в диапазоне A1:A5 содержатся значения "Яблоко", 123, "Груша", ИСТИНА, "Банан", формула вернёт 3 (только текстовые строки).
Почему не работает СЧЁТЕСЛИ с критерием "???"
Критерий "???" в СЧЁТЕСЛИ ищет ячейки с ровно 3 символами, а не любой текст. Для произвольной длины используйте "*" или "??????????" (10 знаков подряд).
Метод 3: Продвинутый подсчёт с СУММПРОИЗВ
Функция СУММПРОИЗВ позволяет гибко комбинировать условия. Например, чтобы посчитать текстовые ячейки длиной более 5 символов, используйте:
=СУММПРОИЗВ(--(ЕТЕКСТ(A1:A10)); --(ДЛСТР(A1:A10)>5))
Практическое применение:
- 📌 Подсчёт коротких текстовых меток (например,
"Да"/"Нет") - 📌 Фильтрация ячеек с текстом, содержащим определённые символы (
=СУММПРОИЗВ(--(ЕНД(A1:A10; "текст")))) - 📌 Исключение ячеек с ошибками (
#Н/Д,#ЗНАЧ!)
Метод 4: Подсчёт уникальных текстовых значений
Если нужно узнать количество уникальных текстовых записей (например, список городов без повторений), используйте комбинацию:
=СЧЁТЕСЛИ(УНИК(A1:A10); "*")
Для старых версий Excel (до 2019 года) подойдёт формула массива:
=СУММ(1/ЧАСТОТА(ЕСЛИ(ЕТЕКСТ(A1:A10); A1:A10); ЕСЛИ(ЕТЕКСТ(A1:A10); A1:A10)))
Важно! Вводите её как формулу массива, нажав Ctrl+Shift+Enter.
Пример: в диапазоне A1:A5 значения "Москва", "Питер", "Москва", "Казань", "Питер". Формула вернёт 3 (уникальные города).
☑️ Проверка перед подсчётом уникальных значений
Метод 5: Подсчёт текстовых значений с условиями (цвет, формат)
Иногда текстовые данные нужно считать с учётом дополнительных параметров, например:
- 🎨 Ячейки определённого цвета
- 📏 Ячейки с конкретным форматированием (жирный, курсив)
- 🔍 Текст, содержащий ключевые слова
Для этого используйте пользовательскую функцию VBA или комбинацию функций. Пример для подсчёта красных текстовых ячеек:
=СУММПРОИЗВ(--(ЕТЕКСТ(A1:A10)); --(ЦВЕТЗНАЧ(A1:A10)=3))
Где 3 — код красного цвета в палитре Excel.
⚠️ Внимание: Функция ЦВЕТЗНАЧ доступна только в Excel 365 и Excel 2021. Для старых версий потребуется VBA-макрос.
Сравнение методов: какой выбрать?
Выбор метода зависит от задачи и версии Excel. Ниже таблица с сравнением ключевых параметров:
| Метод | Подходит для | Сложность | Ограничения | Версия Excel |
|---|---|---|---|---|
СЧЁТЕСЛИ("*") |
Простого подсчёта любого текста | ⭐ | Считает числа, отформатированные как текст | Все |
СУММ(--ЕТЕКСТ()) |
Точного подсчёта только текста | ⭐⭐ | Не работает с пустыми ячейками | 2007+ |
СУММПРОИЗВ с условиями |
Сложных критериев (длина, символы) | ⭐⭐⭐ | Требует знания синтаксиса | 2003+ |
| Уникальные значения | Аналитики уникальных записей | ⭐⭐⭐⭐ | В старых версиях — формула массива | 2019+ (или VBA) |
| VBA/ЦВЕТЗНАЧ | Подсчёта с учётом форматирования | ⭐⭐⭐⭐⭐ | Требует навыков программирования | 365/2021 |
Критическая ошибка новичков: функция СЧИТАТЬПУСТОТЫ не поможет с подсчётом текста — она считает только абсолютно пустые ячейки, игнорируя текстовые строки и формулы, возвращающие пустое значение.
Типичные ошибки и как их избежать
Даже опытные пользователи Excel допускают ошибки при работе с текстовыми данными. Вот самые распространённые:
- Пробелы и невидимые символы. Ячейка может выглядеть пустой, но содержать пробел или символ табуляции. Используйте
СЖПРОБЕЛЫдля очистки:=СЧЁТЕСЛИ(СЖПРОБЕЛЫ(A1:A10); "*") - Числа в текстовом формате. Если ячейка содержит
'123(с апострофом),СЧЁТЕСЛИпосчитает её как текст. Чтобы исключить такие случаи, комбинируйтеЕТЕКСТиЕЧИСЛО. - Логические значения.
ИСТИНА/ЛОЖЬне являются текстом, но некоторые формулы могут их учитывать. Исключите их явно:=СУММ(--(ЕТЕКСТ(A1:A10)); --(НЕ(ИЛИ(A1:A10=ИСТИНА; A1:A10=ЛОЖЬ))))
⚠️ Внимание: Если вы импортировали данные из CSV или базы данных, текстовые числа (например, артикулы) могут восприниматься как числа. ИспользуйтеТЕКСТдля принудительного преобразования:=ТЕКСТ(A1; "0").
FAQ: Ответы на частые вопросы
Можно ли посчитать текстовые ячейки по цвету без VBA?
В Excel 365 и 2021 да — используйте функцию ЦВЕТЗНАЧ. Для старых версий потребуется VBA-макрос или обходной путь: отсортируйте данные по цвету и используйте СЧЁТЕСЛИ для видимого диапазона.
Почему СЧЁТЕСЛИ(A1:A10; "*") возвращает 0, если в ячейках есть текст?
Вероятные причины:
- Текст в ячейках — результат формулы, возвращающей пустую строку (например,
=ЕСЛИ(...; ""; "Текст")). ИспользуйтеДЛСТР>0. - Ячейки содержат только непечатаемые символы (проверьте с
КОДСИМВ). - Диапазон указан неверно (например,
A1:A10вместоA1:A100).
Как посчитать текстовые ячейки, содержащие конкретное слово?
Используйте СЧЁТЕСЛИ с подстановочным знаком:
=СЧЁТЕСЛИ(A1:A10; "слово")
Для регистронезависимого поиска (например, "текст" и "ТЕКСТ"):
=СУММПРОИЗВ(--НЕ(ЕОШИБКА(ПОИСК("текст"; СТРОЧН(A1:A10)))))
Можно ли автоматически обновлять количество текстовых ячеек при изменении данных?
Да. Все приведённые формулы (кроме VBA) обновляются автоматически. Для больших таблиц используйте:
- 📊 Сводные таблицы (группировка по текстовым полям).
- 🔄 Power Query (преобразование данных с подсчётом на этапе загрузки).
- 📈 Динамические массивы (в Excel 365):
=ФИЛЬТР(A1:A10; ЕТЕКСТ(A1:A10))+СТРОКА.
Как посчитать текстовые ячейки в фильтрованном диапазоне?
Используйте функцию ПРОМЕЖУТОЧНЫЕ.ИТОГИ:
=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3; A1:A10)
Для текста комбинируйте с ЕТЕКСТ:
=СУММПРОИЗВ(--ЕТЕКСТ(A1:A10); --ПОДСЧЁТ(A1:A10))
Где ПОДСЧЁТ — это ПРОМЕЖУТОЧНЫЕ.ИТОГИ(2; ...) (количество видимых ячеек).