Подсчет текстовых значений в таблицах
Чтобы посчитать ячейки, содержащие только текст в Excel, используйте формулу =СУММПРОИЗВ(--ЕТЕКСТ(A1:A100)) для всех версий или =СЧЁТЗ(ФИЛЬТР(A1:A100; ЕТЕКСТ(A1:A100))) для Excel 365/2021. Эти методы игнорируют числа, даты и пустые клетки, оставляя только строковые значения.
Выбор метода в зависимости от версии Excel
Эффективность решения зависит от функционала вашей программы. В новых версиях доступны динамические массивы, упрощающие работу, тогда как в старых требуется использование матричных вычислений.
Для современных версий (Excel 365, 2021)
Используйте функцию ФИЛЬТР. Она наглядно отбирает нужные данные перед подсчетом. Формула:
=СЧЁТЗ(ФИЛЬТР(A1:A100; ЕТЕКСТ(A1:A100)))
Как это работает:
ЕТЕКСТпроверяет каждую ячейку диапазона.ФИЛЬТРоставляет только те, где результат ИСТИНА.СЧЁТЗподсчитывает количество отфильтрованных элементов.
Если нужно исключить ячейки, содержащие только пробелы, добавьте условие длины:
=СЧЁТЗ(ФИЛЬТР(A1:A100; (ЕТЕКСТ(A1:A100))*(ДЛСТР(СЖПРОБЕЛЫ(A1:A100))>0)))
Для старых версий (2019, 2016 и ранее)
Функция ФИЛЬТР недоступна. Используйте связку СУММПРОИЗВ и ЕТЕКСТ.
Формула:
=СУММПРОИЗВ(--ЕТЕКСТ(A1:A100))
Логика работы:
ЕТЕКСТвозвращает массив логических значений (ИСТИНА/ЛОЖЬ).- Двойной минус
--преобразует их в числа (1 и 0). СУММПРОИЗВсуммирует единицы, давая итоговое количество.
Не используйте функцию СЧЁТЕСЛИ с маской "*" для этой задачи. Она посчитает все непустые ячейки, включая числа и даты, так как для Excel они тоже являются содержимым.
Учет специфических условий
Стандартные формулы могут требовать доработки в зависимости от структуры ваших данных.
Исключение ошибок и пустых строк
Если в диапазоне встречаются ошибки (#Н/Д, #ЗНАЧ!), функция ЕТЕКСТ автоматически вернет для них ЛОЖЬ, поэтому они не попадут в подсчет. Однако ячейки, содержащие формулы, возвращающие пустую строку "", могут быть учтены как текст в некоторых контекстах.
Для гарантированного подсчета только «видимого» текста без скрытых формул-пустышек:
=СУММПРОИЗВ(--ЕТЕКСТ(A1:A100); --(A1:A100<>""))
Подсчет ячеек, содержащих конкретный текст
Если задача стоит не просто найти любой текст, а ячейки с определенным словом (например, «Отчет»):
=СЧЁТЕСЛИ(A1:A100; "*Отчет*")
Звездочки * означают любое количество символов до и после искомого слова.
Сравнение методов подсчета
| Задача | Формула (Универсальная) | Формула (Excel 365) | Примечание |
|---|---|---|---|
| Только текст | =СУММПРОИЗВ(--ЕТЕКСТ(A1:A100)) | =СЧЁТЗ(ФИЛЬТР(A1:A100; ЕТЕКСТ(A1:A100))) | Игнорирует числа и даты |
| Все непустые | =СЧЁТЗ(A1:A100) | =СЧЁТЗ(A1:A100) | Считает текст, числа, ошибки |
| Только числа | =СЧЁТ(A1:A100) | =СЧЁТ(A1:A100) | Игнорирует текст |
| Слово в тексте | =СЧЁТЕСЛИ(A1:A100;"слово") | =СЧЁТЕСЛИ(A1:A100;"слово") | Регистронезависимый поиск |
Частые ошибки
-
Путаница между СЧЁТ и СЧЁТЗ.
СЧЁТсчитает только числа.СЧЁТЗсчитает всё, что не пусто (текст + числа + ошибки).- Для чистого текста нужна проверка типа данных (
ЕТЕКСТ).
-
Ячейки с пробелами. Пользователь мог случайно поставить пробел в пустой ячейке. Для стандартного
ЕТЕКСТпробел — это текст. Если нужно игнорировать такие случаи, используйте комбинацию с функциейСЖПРОБЕЛЫ(TRIM), как показано в совете выше. -
Даты считаются текстом? Нет. В Excel даты хранятся как числа. Формула с
ЕТЕКСТкорректно проигнорирует даты, даже если ячейка отформатирована как текст, но содержит числовое значение даты.
FAQ
Вопрос: Как посчитать цветные ячейки с текстом? Ответ: Стандартными формулами это сделать нельзя. Потребуется создание пользовательской функции на VBA или использование надстроек.
Вопрос: Работает ли этот метод в Google Таблицах?
Ответ: Да, синтаксис полностью совпадает. Используйте =COUNTA(FILTER(A1:A100; ISTEXT(A1:A100))) (в английской версии) или русские аналоги функций.
Вопрос: Почему формула возвращает 0, хотя текст явно есть? Ответ: Проверьте, не записан ли текст как результат формулы, возвращающей ошибку, или не включен ли ручной расчет книги (вкладка «Формулы» -> «Параметры вычислений» -> «Автоматически»).