Как посчитать количество ячеек с текстом в Excel: пошаговое руководство

Работа с текстовыми данными в Microsoft Excel — одна из самых распространённых задач, с которыми сталкиваются пользователи. Часто требуется не просто хранить или анализировать текст, а подсчитывать количество ячеек, содержащих текстовые значения. Например, когда нужно узнать, сколько клиентов оставили отзывы, сколько товаров имеют описание, или сколько строк в базе данных содержат комментарии. На первый взгляд задача кажется простой, но на практике многие сталкиваются с трудностями: Excel не всегда корректно распознаёт текстовые форматы, а стандартные функции вроде COUNT работают только с числами.

В этой статье мы разберём 5 надёжных способов подсчёта текстовых ячеек — от базовых до продвинутых, включая обработку скрытых символов, пробелов и комбинированных форматов (например, когда в ячейке одновременно текст и число). Вы также узнаете, как избежать типичных ошибок, почему функция COUNTA не всегда подходит для текста, и как автоматизировать процесс с помощью Power Query. Особое внимание уделим нюансам работы с русскоязычными данными и символами кириллицы, которые иногда воспринимаются Excel как "нетекстовые" значения.

Если вы регулярно работаете с большими массивами данных, умение быстро и точно считать текстовые ячейки сэкономит часы времени. Например, маркетолог может за секунды определить, сколько лидов заполнили поле "Комментарий" в форме обратной связи, а аналитик — выявить строки с некорректными данными. Давайте разберёмся, как это делать эффективно.

1. Базовый способ: функция COUNTIF с критерием "*"

Самый простой и универсальный метод — использовать функцию COUNTIF с подстановочным знаком . Этот символ в Excel обозначает "любой набор символов", поэтому формула =COUNTIF(диапазон; "") вернёт количество ячеек, содержащих хотя бы один символ (включая пробелы и невидимые символы).

Пример:

=COUNTIF(A1:A100; "*")

Эта формула подсчитает все непустые ячейки в диапазоне A1:A100, но важно понимать, что она учитывает любые данные, а не только текст. Если в ячейке число или дата, оно тоже будет посчитано. Чтобы исключить числа, нужно комбинировать COUNTIF с другими функциями.

Чтобы проверить, является ли содержимое ячейки исключительно текстом, используйте формулу с ISTEXT:

=SUMPRODUCT(--(ISTEXT(A1:A100)))

Этот вариант точнее, так как ISTEXT возвращает ИСТИНА только для текстовых значений, игнорируя числа, даты и логические значения (ИСТИНА/ЛОЖЬ).

2. Продвинутый подход: комбинация ISTEXT и SUMPRODUCT

Когда нужно посчитать только текстовые ячейки, исключив числа, даты и пустые значения, оптимально использовать массивную формулу с SUMPRODUCT и ISTEXT. Этот метод работает даже с диапазонами, содержащими ошибки (#Н/Д, #ЗНАЧ!).

Формула:

=SUMPRODUCT(--(ISTEXT(A1:A100)))

Разберём, как она работает:

  1. ISTEXT(A1:A100) — проверяет каждую ячейку в диапазоне и возвращает массив значений ИСТИНА/ЛОЖЬ.
  2. -- (двойной минус) — преобразует ИСТИНА/ЛОЖЬ в 1/0.
  3. SUMPRODUCT — суммирует все единицы, давая итоговое количество текстовых ячеек.

Преимущество этого метода — универсальность: он корректно обрабатывает:

  • 📌 Ячейки с пробелами (считаются как текст).
  • 📌 Текст с числами (например, "123abc" — текст).
  • 📌 Скрытые символы (переносы строк, табуляции).
  • 📌 Ошибки (игнорируются, не ломают формулу).
Почему COUNTIF с "*" не всегда подходит?

Функция COUNTIF(диапазон; "*") учитывает все непустые ячейки, включая числа и даты. Например, если в ячейке число 123, оно будет посчитано, хотя по сути это не текст. Также COUNTIF не распознаёт ячейки с формулами, возвращающими пустую строку (=""), как пустые, что может исказить результат.

3. Подсчёт текстовых ячеек с учётом регистра

По умолчанию Excel не различает регистр при подсчёте текста. Например, слова "Привет" и "привет" будут восприняты как одинаковые. Если вам нужно учитывать регистр (например, при анализе данных, где важна заглавная буква), используйте функцию EXACT в комбинации с SUMPRODUCT.

Формула для подсчёта ячеек, точно соответствующих заданному тексту (с учётом регистра):

=SUMPRODUCT(--(EXACT("искомый текст"; A1:A100)))

Если же нужно посчитать все текстовые ячейки с учётом регистра, но без привязки к конкретному слову, потребуется более сложный подход с VBA или Power Query (об этом расскажем ниже).

Пример: подсчитаем, сколько раз в диапазоне B2:B50 встречается слово "Да" с заглавной буквой:

=SUMPRODUCT(--(EXACT("Да"; B2:B50)))
📊 Какой способ подсчёта текстовых ячеек вы используете чаще?
Функция COUNTIF с "*"
Комбинация ISTEXT и SUMPRODUCT
Фильтр по типу данных
Ручной подсчёт
Другой

4. Подсчёт текстовых ячеек с исключением пробелов и пустых строк

Частая проблема — ячейки, которые визуально пустые, но содержат пробелы, неразрывные пробелы (CHAR(160)) или символы табуляции. Стандартные функции вроде ISTEXT посчитают их как текстовые, что исказит результат. Чтобы исключить такие ячейки, используйте формулу с TRIM и LEN:

=SUMPRODUCT(--(ISTEXT(A1:A100)); --(LEN(TRIM(A1:A100))>0))

Разбор:

  1. TRIM(A1:A100) — удаляет лишние пробелы.
  2. LEN(...)>0 — проверяет, что длина строки после обрезки больше 0.
  3. ISTEXT — гарантирует, что ячейка содержит текст, а не число.

Это актуально для данных, импортированных из веб-форм или баз данных, где часто встречаются "мусорные" символы. Например, если в ячейке только пробел, ISTEXT вернёт ИСТИНА, но после TRIM строка станет пустой, и LEN вернёт 0.

Удалить лишние пробелы функцией TRIM

Проверить наличие непечатаемых символов (CHAR(160), CHAR(9))

Исключить ячейки с формулами, возвращающими пустую строку

Учесть регистр, если это критично для анализа-->

5. Автоматизация с помощью Power Query

Если вам регулярно нужно подсчитывать текстовые ячейки в больших наборах данных (тысячи строк), ручные формулы становятся неудобными. В этом случае поможет инструмент Power Query (доступен в Excel 2016 и новее). Он позволяет:

  • 📌 Фильтровать данные по типу (только текст).
  • 📌 Удалять пустые строки и пробелы автоматически.
  • 📌 Сохранять шаги обработки для повторного использования.

Пошаговая инструкция:

  1. Выделите диапазон данных и перейдите на вкладку Данные → Получить данные → Из таблицы/диапазона.
  2. В открывшемся редакторе Power Query выберите столбец, который нужно проанализировать.
  3. Нажмите на стрелку фильтра в заголовке столбца и выберите Текстовые фильтры → Не равно → "" (пустая строка).
  4. Добавьте пользовательский столбец с формулой = Text.Select([Column1], {"a".."я"}) (для кириллицы) или = Text.Select([Column1], {"a".."z"}) (для латиницы), чтобы отфильтровать только буквенные символы.
  5. Нажмите Закрыть и загрузить — результат будет выведен в новую таблицу.

Power Query особенно полезен, если данные импортируются из внешних источников (например, CSV или JSON) и требуют предварительной очистки. Например, вы можете автоматически удалять все ячейки, содержащие только цифры или специальные символы, оставляя только чистый текст.

6. Ошибки и нюансы: почему формулы могут не работать

Даже опытные пользователи Excel сталкиваются с ситуациями, когда формулы для подсчёта текстовых ячеек дают неверный результат. Рассмотрим типичные причины и решения:

Проблема Причина Решение
Формула ISTEXT не срабатывает на ячейки с текстом Ячейка содержит число, отформатированное как текст (например, '123) Используйте =SUMPRODUCT(--(ISTEXT(A1:A100) * (A1:A100 <> ""))) или преобразуйте данные в текст функцией TEXT
COUNTIF считает числа как текст Функция COUNTIF(диапазон; "*") учитывает все непустые ячейки Замените на SUMPRODUCT(--(ISTEXT(диапазон)))
Формула возвращает #ЗНАЧ! Диапазон содержит ошибки (#Н/Д, #ДЕЛ/0!) Оберните формулу в IFERROR или используйте AGGREGATE с параметром 6 (игнорировать ошибки)
Кириллические символы не распознаются Неправильная кодировка при импорте данных Импортируйте данные через Power Query с указанием кодировки Windows-1251 или UTF-8

Особое внимание уделите ячейкам с формулами, которые возвращают текст. Например, если в ячейке формула =ЕСЛИ(B1>10; "Высокий"; "Низкий"), то ISTEXT посчитает её как текстовую, даже если визуально там число. Чтобы исключить такие случаи, используйте проверку на наличие формулы:

=SUMPRODUCT(--(ISTEXT(A1:A100)); --(NOT(ISFORMULA(A1:A100))))

7. Альтернативные методы: фильтр и условное форматирование

Если формулы кажутся сложными, можно воспользоваться встроенными инструментами Excel без написания формул:

Способ 1: Фильтр по типу данных

  1. Выделите диапазон данных.
  2. Перейдите на вкладку Данные → Фильтр.
  3. Нажмите на стрелку фильтра в заголовке столбца и выберите Текстовые фильтры → Не пустые.
  4. В статусной строке Excel (внизу окна) отобразится количество отфильтрованных записей.

Способ 2: Условное форматирование

  1. Выделите диапазон.
  2. Перейдите на вкладку Главная → Условное форматирование → Создать правило.
  3. Выберите Использовать формулу для определения форматируемых ячеек и введите =ISTEXT(A1).
  4. Задайте формат (например, заливку красным) и нажмите ОК.
  5. Все текстовые ячейки будут выделены — их количество можно посчитать вручную или через НАЙТИ и ВЫДЕЛИТЬ.

Эти методы удобны для разовых задач, когда не требуется автоматизация. Однако они не подходят для динамических данных, которые часто обновляются.

FAQ: Частые вопросы о подсчёте текстовых ячеек

Можно ли посчитать текстовые ячейки в гугл-таблицах?

Да, в Google Sheets работают те же принципы. Используйте:

=COUNTIF(A1:A100; "*")

или для точного подсчёта текста:

=SUMPRODUCT(--(ISTEXT(A1:A100)))

Отличие только в том, что в Google Sheets функция SUMPRODUCT может работать медленнее на больших диапазонах.

Почему моя формула считает пустые ячейки как текстовые?

Скорее всего, в "пустых" ячейках есть невидимые символы: пробелы, табуляции или символы переноса строки. Чтобы их удалить, используйте:

=TRIM(CLEAN(SUBSTITUTE(A1; CHAR(160); " ")))

где CHAR(160) — неразрывный пробел. После очистки повторите подсчёт.

Как посчитать ячейки, содержащие конкретное слово?

Используйте COUNTIF с подстановочным знаком:

=COUNTIF(A1:A100; "слово")

Для учёта регистра в Excel 365:

=SUMPRODUCT(--(FIND("Слово"; A1:A100) > 0))

Обратите внимание: FIND чувствительна к регистру, а SEARCH — нет.

Можно ли посчитать текстовые ячейки в сводной таблице?

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

  1. Добавьте в исходные данные вспомогательный столбец с формулой =ISTEXT([@Столбец]).
  2. Создайте сводную таблицу и перетащите вспомогательный столбец в область Значения (операция — Счётчик).

Это покажет количество текстовых ячеек в разрезе других полей.

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

Используйте таблицы Excel (не диапазоны!) и структурированные ссылки. Например:

  1. Преобразуйте диапазон в таблицу (Ctrl + T).
  2. Введите формулу с ссылкой на столбец таблицы:
    =SUMPRODUCT(--(ISTEXT(Таблица1[Столбец1])))>
  3. Теперь при добавлении новых строк в таблицу формула будет автоматически расширять диапазон.

Альтернатива — использовать Power Query с автообновлением при открытии файла.