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

Вы когда-нибудь сталкивались с задачей подсчёта ячеек, содержащих текст, в огромной таблице Microsoft Excel? Это типичная проблема для аналитиков, бухгалтеров и менеджеров, которые работают с данными клиентов, инвентарными списками или отчётами. В отличие от числовых значений, текстовые данные не суммируются стандартными функциями вроде СУММ, но это не значит, что задача невыполнима.

В этой статье мы разберём 5 проверенных методов — от элементарных функций для новичков до продвинутых приёмов с использованием Power Query и VBA. Вы узнаете, как отличать пустые ячейки от текстовых, как учитывать только определённые слова, и даже как автоматизировать процесс для регулярных отчётов. А в конце вас ждёт FAQ-блок с ответами на частые ошибки и лайфхак для работы с большими массивами данных.

Почему стандартная функция СУММ не работает с текстом

Многие пользователи пытаются применить СУММ к столбцу с текстом и получают результат 0 или ошибку #ЗНАЧ!. Это происходит потому, что Excel воспринимает текст как нечисловое значение — для программы слова "Да", "Принято" или "Иванов" не имеют количественной меры. Однако задача подсчёта таких ячеек вполне решаема другими инструментами.

Вот ключевые различия между типами данных, которые важно понимать:

  • 📊 Числа: 10, 3.14, -5 — суммируются функцией СУММ.
  • 📝 Текст: "Привет", "Да", "А100" — требуют функций подсчёта (СЧЁТЗ, СЧЁТЕСЛИ).
  • 🗓️ Даты: 15.05.2026 — хранятся как числа, но отображаются как текст.
  • ⚠️ Пустые ячейки: игнорируются большинством функций, кроме СЧИТАТЬПУСТОТЫ.

Excel автоматически преобразует в текст любые данные, начинающиеся с апострофа (') или содержащие буквы. Например, если ввести '123, программа воспримет это как текст, а не число. Это важно учитывать при импорте данных из внешних источников.

📊 Какой версии Excel вы пользуетесь?
Excel 2016 или старше
Excel 2019/2021
Microsoft 365 (онлайн)
Другая (указать в комментариях)

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

Если вам нужно посчитать все непустые ячейки в диапазоне, включая текст, числа и даты — функция СЧЁТЗ (COUNTIF в английской версии) станет вашим первым помощником. Её синтаксис предельно прост:

=СЧЁТЗ(диапазон)

Примеры использования:

ФормулаДиапазонРезультатПояснение
=СЧЁТЗ(A1:A10)A1:A107В диапазоне 7 непустых ячеек (текст, числа, даты)
=СЧЁТЗ(B2:B20)B2:B201212 ячеек с любыми данными
=СЧЁТЗ("Лист2!C:C")Весь столбец C на Листе245Подсчёт по всему столбцу (осторожно с большими диапазонами!)

Ограничения метода:

  • 🚫 Не различает типы данных — считает и текст, и числа.
  • 🚫 Пустые ячейки и ячейки с формулами, возвращающими "", игнорируются.
  • 🚫 Не работает с условиями (например, "посчитать только ячейки со словом 'Да'").
⚠️ Внимание: Если в диапазоне есть ячейки с формулами, возвращающими пустую строку (=""), СЧЁТЗ проигнорирует их. Чтобы учесть такие случаи, используйте комбинацию СЧЁТЗ + СЧИТАТЬПУСТОТЫ.

Способ 2: СЧЁТЕСЛИ для текста с условиями

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

=СЧЁТЕСЛИ(диапазон; критерий)

Где критерий может быть:

  • 🔤 Точным совпадением: "Да", "Принято".
  • 🔍 Шаблоном с подстановочными знаками: "ов" (все фамилии на "-ов"), " (слова, начинающиеся на "Т").
  • 📌 Условием: ">100" (для чисел), "<>"&"" (непустые ячейки).

Примеры формул:

ЗадачаФормулаРезультат
Посчитать ячейки со словом "Да"=СЧЁТЕСЛИ(A1:A100; "Да")12
Найти все фамилии на "-ова"=СЧЁТЕСЛИ(B2:B50; "*ова")8
Посчитать непустые ячейки (альтернатива СЧЁТЗ)=СЧЁТЕСЛИ(C:C; "<>"&"")245
Найти ячейки, содержащие "ург" (например, "Сургут", "Бургас")=СЧЁТЕСЛИ(D1:D200; "ург")5

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

Убедиться, что в критерии нет лишних пробелов|Проверить регистр (Excel чувствителен к "Да" vs "да")|Использовать "*" для частичного совпадения|Тестировать формулу на небольшом диапазоне-->

Способ 3: Функция СЧИТАТЬПУСТОТЫ для обратного подсчёта

Иногда удобнее посчитать пустые ячейки, а затем вычесть их из общего количества. Для этого предназначена функция СЧИТАТЬПУСТОТЫ (COUNBLANK). Формула выглядит так:

=СЧИТАТЬПУСТОТЫ(диапазон)

Практический пример: Допустим, в столбце A1:A100 100 ячеек, из них 15 пустых. Чтобы найти количество непустых (включая текст), используйте:

=100 - СЧИТАТЬПУСТОТЫ(A1:A100)

Этот метод полезен, когда:

  • 📏 Нужно быстро оценить заполненность диапазона.
  • 🔄 Данные обновляются динамически, и пустые ячейки появляются/исчезают.
  • 📊 Требуется визуализировать процент заполнения (например, для дашбордов).
⚠️ Внимание: Функция СЧИТАТЬПУСТОТЫ учитывает ячейки с формулами, возвращающими "", как пустые. Если вам нужно их исключить, комбинируйте с СЧЁТЗ:

=СЧЁТЗ(A1:A100) - СЧИТАТЬПУСТОТЫ(A1:A100)

Способ 4: Комбинация функций для сложных условий

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

1. Подсчёт ячеек с текстом определённой длины

Используйте СЧЁТЕСЛИ с функцией ДЛСТР (LEN) в массиве:

=СУММ(--(ДЛСТР(A1:A100)>5))

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

2. Подсчёт текстовых ячеек, игнорируя числа

Чтобы посчитать только текст, исключив числа и даты, используйте:

=СУММ(--(ЕТЕКСТ(A1:A100)))

Функция ЕТЕКСТ (ISTEXT) возвращает ИСТИНА только для текстовых ячеек.

3. Поиск текста с учётом регистра

Стандартная СЧЁТЕСЛИ не различает "Да" и "да". Для чувствительного к регистру поиска применяйте:

=СУММ(--(A1:A100="Да"))

Или для частичного совпадения:

=СУММ(--(НАЙТИ("ург"; A1:A100)>0))

Важно: Формулы массива могут замедлять работу с большими диапазонами. Для оптимизации используйте Power Query или VBA.

Как ввести формулу массива в Excel 2016 и старше?

Вместо обычного Enter после ввода формулы нажмите Ctrl+Shift+Enter. Excel автоматически обернёт формулу в фигурные скобки {}. В новых версиях (Excel 365) формулы массива вводятся как обычные.

Способ 5: Автоматизация с помощью Power Query и VBA

Для регулярной обработки больших объёмов данных ручные формулы становятся неэффективными. В таких случаях поможет Power Query (вкладка Данные → Получить данные) или макросы VBA.

Метод 1: Power Query

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

  1. Выделите диапазон и нажмите Данные → Из таблицы/диапазона.
  2. В редакторе Power Query добавьте столбец с условием: Добавить столбец → Пользовательский.
  3. Введите формулу: = if [ВашСтолбец] <> null and Text.Length(Text.From([ВашСтолбец])) > 0 then 1 else 0.
  4. Сгруппируйте данные по новому столбцу (сумма по значению 1).

Метод 2: Макрос VBA

Скопируйте этот код в редактор VBA (Alt+F11), чтобы создать функцию для подсчёта текстовых ячеек:

Function CountTextCells(rng As Range) As Long

Dim cell As Range

Dim count As Long

count = 0

For Each cell In rng

If VarType(cell.Value) = vbString Then

count = count + 1

End If

Next cell

CountTextCells = count

End Function

Теперь в Excel можно использовать =CountTextCells(A1:A100).

⚠️ Внимание: Макросы VBA работают только в файлах с расширением .xlsm. При открытии такого файла Excel может показать предупреждение о безопасности — разрешите выполнение макросов, если доверяете источнику.

Типичные ошибки и как их избежать

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

ОшибкаПричинаРешение
#ИМЯ?Опечатка в названии функцииПроверьте синтаксис: СЧЁТЕСЛИ, а не СЧЁТЕСЛИМ (если не нужны множественные критерии).
Формула возвращает 0Критерий не совпадает с даннымиИспользуйте "*" для частичного совпадения: =СЧЁТЕСЛИ(A:A; "текст").
Медленная работа с большими диапазонамиФормулы массива или ЕТЕКСТ в большом диапазонеОграничьте диапазон (например, A1:A1000 вместо A:A) или используйте Power Query.
Не учитываются ячейки с формулами, возвращающими текстСЧЁТЗ игнорирует формулы, если они возвращают ""Замените формулы на значения (Копировать → Специальная вставка → Значения).

Совет для новичков: Всегда тестируйте формулы на небольшом диапазоне перед применением ко всей таблице. Например, проверьте =СЧЁТЕСЛИ(A1:A10; "Да") перед тем, как расширять до A1:A1000.

FAQ: Ответы на частые вопросы

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

Да, но стандартными функциями это невозможно. Используйте VBA-макрос:

Function CountColoredCells(rng As Range, color As Range) As Long

Dim cell As Range, count As Long

count = 0

For Each cell In rng

If cell.Font.Color = color.Font.Color Then

count = count + 1

End If

Next cell

CountColoredCells = count

End Function

Применение: =CountColoredCells(A1:A100; B1), где B1 — ячейка с нужным цветом.

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

Используйте СЧЁТЗ — она учитывает все непустые ячейки независимо от типа данных. Или комбинируйте:

=СЧЁТЕСЛИ(A1:A100; "<>")
Почему СЧЁТЕСЛИ не находит текст с пробелами?

Пробелы в начале или конце критерия могут искажать результат. Используйте функцию СЖПРОБЕЛЫ (TRIM) для очистки данных:

=СЧЁТЕСЛИ(СЖПРОБЕЛЫ(A1:A100); "Ваш текст")

Или создайте вспомогательный столбец с очищенными данными.

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

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

=СУММ(--(ЧАСТОТА(ПОИСКПОЗ(ЕСЛИ(ЕТЕКСТ(A1:A100); A1:A100); ЕСЛИ(ЕТЕКСТ(A1:A100); A1:A100)); ПОИСКПОЗ(ЕСЛИ(ЕТЕКСТ(A1:A100); A1:A100); ЕСЛИ(ЕТЕКСТ(A1:A100); A1:A100)))>0))

В Excel 365 проще: =СЧЁТЕСЛИМН(УНИК(A1:A100); УНИК(A1:A100); ">").

Можно ли посчитать текстовые ячейки в фильтрованном диапазоне?

Да, используйте функцию ПРОМЕЖУТОЧНЫЕ.ИТОГИ:

=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3; A1:A100)

Где 3 — код операции для СЧЁТЗ. Предварительно примените автофильтр.