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

Зачем считать текстовые ячейки и какие подводные камни вас ждут

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

Основная проблема заключается в том, что Excel не всегда однозначно определяет, что именно считать "текстом". Для программы текстом может быть как слово "Привет", так и формула =СЕГОДНЯ(), результат которой отображается как дата. А пустая ячейка с формулой =ЕСЛИ(A1>10;"";"") вообще не содержит видимого текста, но технически не является пустой. Эти нюансы приводят к ошибкам в 80% случаев, когда пользователи пытаются применить стандартные функции подсчёта.

В этой статье мы разберём 5 надёжных методов подсчёта текстовых ячеек — от элементарных до продвинутых, — а также покажем, как обходить типичные ловушки Excel. Вы узнаете, когда достаточно функции СЧЁТЗ, а когда потребуется комбинация из ЕСЛИ, ТИП и ДЛСТР. Особое внимание уделим различиям между версиями Excel 2010, 2016 и 365 — они влияют на доступность некоторых функций.

Метод 1: Функция СЧЁТЗ — простой, но не всегда точный способ

Начнём с самой очевидной функции — СЧЁТЗ (или COUNTA в английской версии). Она подсчитывает количество непустых ячеек в заданном диапазоне, независимо от типа данных. Это значит, что СЧЁТЗ посчитает и текст, и числа, и даты, и даже ошибки вроде #ДЕЛ/0!.

Формула выглядит так:

=СЧЁТЗ(A1:A100)

Где A1:A100 — диапазон, в котором вы хотите подсчитать непустые ячейки. Казалось бы, что может быть проще? Но здесь кроется первый подводный камень: СЧЁТЗ не различает типы данных. Если в вашем диапазоне есть числа или даты, они тоже будут учтены. Например, для диапазона с данными:

ЯчейкаСодержимоеСЧЁТЗ посчитает?
A1"Привет"Да
A242Да
A315.07.2023Да
A4"" (пустая строка)Да
A5#Н/ДДа

Функция вернёт значение 5, хотя текстовых значений здесь только одно. Поэтому СЧЁТЗ подходит только если в вашем диапазоне гарантированно нет других типов данных кроме текста.

⚠️ Внимание: Если в ячейке содержится формула, возвращающая пустую строку (например, =ЕСЛИ(A1>10;"";"Текст")), СЧЁТЗ посчитает её как непустую, даже если визуально ячейка выглядит пустой.
📊 Какой версией Excel вы пользуетесь чаще всего?
Excel 2010
Excel 2016
Excel 2019
Excel 365 (онлайн/десктоп)
Другая версия

Метод 2: Комбинация ЕСЛИ + ТИП — точный подсчёт только текста

Чтобы подсчитать исключительно текстовые ячейки, игнорируя числа, даты и ошибки, используйте функцию ТИП (или TYPE). Она возвращает числовое значение, соответствующее типу данных:

  • 📝 1 — текст
  • 🔢 2 — число
  • 📅 5 — логическое значение (ИСТИНА/ЛОЖЬ)
  • 16 — ошибка (например, #ДЕЛ/0!)

Формула для подсчёта только текстовых ячеек:

=СУММПРОИЗВ(--(ТИП(A1:A100)=1))

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

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

Этот метод надёжен, но требует ввода формулы как массивной (в старых версиях Excel нажимайте Ctrl+Shift+Enter). В Excel 365 формула работает без дополнительных действий.

☑️ Подготовка к точному подсчёту текста

Выполнено: 0 / 4

Метод 3: Функция ДЛСТР — подсчёт ячеек с ненулевой длиной

Ещё один надёжный способ — использовать функцию ДЛСТР (или LEN), которая возвращает длину текста в ячейке. Если ячейка пуста или содержит число/дату, ДЛСТР вернёт 0. Это позволяет отфильтровать только те ячейки, где есть хотя бы один символ.

Формула:

=СУММПРОИЗВ(--(ДЛСТР(A1:A100)>0))

Преимущества метода:

  • 🔍 Подсчитывает даже ячейки с пробелами или невидимыми символами (например, табуляция).
  • 🚫 Игнорирует числа, даты и ошибки.
  • ⚡ Работает быстрее, чем ТИП, на больших диапазонах.

Однако есть нюанс: если в ячейке содержится формула, возвращающая пустую строку (например, =ЕСЛИ(A1>10;"";"Текст")), ДЛСТР вернёт 0, и такая ячейка не будет посчитана. Это может быть как плюсом, так и минусом в зависимости от задачи.

⚠️ Внимание: В Excel 2010 и старше ДЛСТР не учитывает форматирование ячеек. Например, ячейка с текстом белого цвета на белом фоне будет посчитана, хотя визуально она выглядит пустой.
Что делать, если ДЛСТР не срабатывает на скрытые символы?

Если в ячейке есть непечатаемые символы (например, символы переноса строки или неразрывные пробелы), используйте комбинацию =СУММПРОИЗВ(--(ПЕЧСИМВ(А1:А100)<>"")). Функция ПЕЧСИМВ удаляет все непечатаемые символы, оставляя только видимый текст.

Метод 4: Функция СЧЁТЕСЛИ с подстановочными знаками

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

Формула:

=СЧЁТЕСЛИ(A1:A100;"*")

Здесь "*" означает "любая последовательность символов". Метод прост, но имеет ограничения:

  • ✅ Подсчитывает ячейки с любым текстом, включая числа, введённые как текст (например, '123).
  • ❌ Игнорирует ячейки с формулами, возвращающими текст (например, =ТЕКСТ(СЕГОДНЯ();"ДД.ММ.ГГГГ")).
  • ❌ Не работает с ячейками, содержащими только пробелы.

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

=СУММПРОИЗВ(--(НЕ(ЕОШ(НАЙТИ("?";A1:A100&"АБВ")))))

Здесь "АБВ" — произвольный набор букв, а НАЙТИ ищет хотя бы один символ из этого набора. Если найдёт — ячейка учитывается.

Метод 5: Power Query — автоматизация для больших данных

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

Алгоритм действий:

  1. Выделите диапазон данных и перейдите на вкладку ДанныеИз таблицы/диапазона (или Get Data → From Table/Range в английской версии).
  2. В открывшемся редакторе Power Query добавьте новый столбец с формулой:
    = if [Column1] = null then 0 else if Value.Type([Column1]) = type text then 1 else 0

    Здесь [Column1] — имя вашего столбца.

  3. Замените значения в новом столбце на сумму (используйте Группировка или Сумма).
  4. Нажмите Закрыть и загрузить, чтобы вернуть данные в Excel.

Преимущества Power Query:

  • 🔄 Автоматически обновляет результаты при изменении исходных данных.
  • 📊 Позволяет комбинировать подсчёт с другими преобразованиями (фильтрация, сортировка).
  • 💾 Сохраняет шаги обработки для повторного использования.

Недостаток — более высокий порог входа для новичков. Однако, освоив Power Query, вы сэкономите часы на рутинных задачах.

Сравнение методов: какой выбрать для вашей задачи

Выбор метода зависит от структуры данных, версии Excel и требуемой точности. В таблице ниже сравнены все рассмотренные способы:

Метод Подходит для Учитывает формулы Учитывает пробелы Скорость Сложность
СЧЁТЗ Диапазоны только с текстом Да (если формула возвращает текст) Да ⚡⚡⚡ ★☆☆
ЕСЛИ + ТИП Точный подсчёт текста Да Нет ⚡⚡ ★★☆
ДЛСТР Подсчёт ячеек с ненулевой длиной Нет (если формула возвращает "") Да ⚡⚡⚡ ★★☆
СЧЁТЕСЛИ с * Поиск любого текста Нет Нет ⚡⚡⚡ ★☆☆
Power Query Большие наборы данных Да Настраивается ★★★

Для большинства задач оптимальным решением будет комбинация ДЛСТР или ТИП с СУММПРОИЗВ. Если же вам нужно регулярно обрабатывать большие объёмы данных, стоит освоить Power Query — это инвестиция, которая окупится сэкономленным временем.

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

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

Да, в Google Sheets работают те же принципы, но с некоторыми нюансами:

  • Функция СЧЁТЗ называется COUNTA.
  • Формулы массивов (например, с СУММПРОИЗВ) не требуют нажатия Ctrl+Shift+Enter.
  • Для подсчёта текстовых ячеек используйте =COUNTIF(A1:A100;"*").

Google Sheets также поддерживает Apps Script — аналог VBA, который позволяет автоматизировать подсчёт с помощью скриптов.

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

Функция СЧЁТЕСЛИ анализирует отображаемое значение ячейки, а не её содержимое. Если ячейка содержит формулу, например =ТЕКСТ(100;"0 руб."), то визуально там отображается текст 100 руб., но СЧЁТЕСЛИ воспринимает это как результат формулы, а не как текст.

Чтобы обойти это ограничение, используйте ДЛСТР или ТИП — они работают с фактическим содержимым ячейки, а не с отображаемым значением.

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

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

=СЧЁТЕСЛИ(A1:A100;"отчёт")

Для регистрочувствительного поиска комбинируйте с НАЙТИ:

=СУММПРОИЗВ(--(НЕ(ЕОШ(НАЙТИ("Отчёт";A1:A100)))))

Здесь НАЙТИ ищет точное совпадение с учётом регистра.

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

Стандартными функциями Excel — нет. Однако есть два обходных пути:

  1. Фильтрация по цвету: Примените фильтр по цвету ячейки (вкладка ДанныеФильтр), затем используйте СЧЁТЗ для видимых ячеек.
  2. VBA-макрос: Напишите скрипт, который будет анализировать цвет фона ячеек. Пример кода:
    Function CountByColor(rng As Range, color As Range) As Long
    

    Dim cl As Range

    Dim count As Long

    count = 0

    For Each cl In rng

    If cl.Interior.Color = color.Interior.Color Then

    If cl.Value <> "" Then count = count + 1

    End If

    Next cl

    CountByColor = count

    End Function

    Используйте её как пользовательскую функцию: =CountByColor(A1:A100;B1), где B1 — ячейка с образцом цвета.

Как посчитать пустые текстовые ячейки?

Под "пустыми текстовыми ячейками" обычно понимают ячейки, которые:

  • Содержат пустую строку ("") как результат формулы.
  • Визуально пусты, но имеют форматирование (например, цвет фона).

Чтобы их посчитать, используйте:

=СУММПРОИЗВ(--(A1:A100=""))

Если нужно учитывать ячейки с пробелами или непечатаемыми символами как "пустые", применяйте:

=СУММПРОИЗВ(--(СЖПРОБЕЛЫ(A1:A100)=""))