Как суммировать в Excel ячейки с текстом или символами: формулы, примеры, лайфхаки

Работаете с большими таблицами в Microsoft Excel или Google Таблицах, где нужно просуммировать только те ячейки, которые содержат не только числа, но и буквы, знаки или комбинации символов? Типичная ситуация: в колонке смешаны цены с валютами («1000 руб.»), артикулы («A123-45»), или текстовые пометки («5 кг (опт)»). Стандартная функция СУММ() такие данные игнорирует — она работает только с чистыми числами. Но есть обходные пути!

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

Проблема в том, что Excel по умолчанию воспринимает ячейки с текстом как нечисловые данные. Например, если в ячейке написано «15% скидка», то СУММ() её проигнорирует, хотя число 15 там есть. Решения зависят от задачи:

  • 🔢 Извлечь числа из текста и сложить их (например, «Товар 5шт» → суммировать 5).
  • 📝 Суммировать ячейки, содержащие определённые символы (например, только те, где есть «%» или «шт»).
  • 🔍 Проигнорировать текст и сложить только числовые части (например, «1000 руб.» → 1000).
📊 Какой у вас опыт работы с Excel?
Начинающий
Средний
Продвинутый
Использую только для простых таблиц

1. Способ: Функция СУММЕСЛИ с подстановочными знаками

Если нужно сложить ячейки, содержащие определённые символы (например, «%», «шт», «руб»), проще всего использовать комбинацию СУММЕСЛИ() с подстановочными знаками * и ?. Этот метод работает, когда числа в ячейках Excel распознаёт как текст (выровнены по левому краю).

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

=СУММЕСЛИ(диапазон; "символ"; диапазон_суммирования)

Где:

  • диапазон — колонка, в которой ищем символы (например, A1:A10).
  • "символ" — маска поиска (например, "шт" для ячеек с «шт»).
  • диапазон_суммирования — колонка с числами для суммирования (может совпадать с первым диапазоном).

Пример: Суммируем все ячейки в колонке B, где в колонке A есть слово «опт»:

=СУММЕСЛИ(A1:A10; "опт"; B1:B10)

2. Способ: Извлечение чисел из текста с помощью формул

Когда числа «спрятаны» внутри текста (например, «Заказ 15 шт» или «Цена: 1000 руб»), нужно сначала выделить числовые значения, а потом их суммировать. Для этого подойдут функции:

  • 🔹 ПСТР() + НАЙТИ() — для извлечения чисел по позициям.
  • 🔹 ЗНАЧЕН() — преобразует текстовое число в числовой формат.
  • 🔹 ПОИСК() — ищет положение символа в тексте.

Пример 1: Извлекаем число перед словом «шт» (формат «X шт»):

=ЗНАЧЕН(ЛЕВСИМВ(A1; НАЙТИ("шт"; A1)-1))

Пример 2: Извлекаем число после символа «:» (формат «Цена: 1000»):

=ЗНАЧЕН(ПСТР(A1; НАЙТИ(":"; A1)+1; 10))

После извлечения чисел используйте СУММ() для подсчёта. Например, если формула извлечения в колонке C, то:

=СУММ(C1:C10)

Убедитесь, что формат текста везде одинаковый (например, всегда "X шт", а не "шт X")

Проверьте, нет ли лишних пробелов перед/после чисел

Используйте ЕЧИСЛО() для проверки результата извлечения-->

3. Способ: Power Query для сложных текстовых данных

Если данных много (тысячи строк) и формат нестабильный (например, «5 кг», «10 шт.», «Цена 100 руб»), ручные формулы будут неэффективны. Здесь поможет Power Query — инструмент для очистки и преобразования данных, встроенный в Excel 2016+ и Google Таблицы (через надстройку).

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

  1. Выделите диапазон данных → Данные → Получение данных → Из таблицы/диапазона.
  2. В редакторе Power Query добавьте пользовательский столбец с формулой извлечения чисел (например, для текста «X шт»):
    = Number.FromText(Text.BeforeDelimiter([Column1], "шт"))
  3. Удалите оригинальный столбец, оставьте только новый с числами.
  4. Нажмите Закрыть и загрузить — данные вернутся в Excel в числовом формате.

Power Query автоматически обновляет результаты при изменении исходных данных. Это удобно для регулярных отчётов.

Как обработать разные разделители (точка, запятая, пробел)?

В Power Query используйте функцию Text.Replace для унификации разделителей. Например, заменить запятые на точки:

= Number.FromText(Text.Replace([Column1], ",", "."))

Это актуально для европейского формата чисел (где 1,23 означает 1.23).

4. Способ: Регулярные выражения (для Google Таблиц и Excel 365)

В Google Таблицах и Excel 365 (с надстройками) доступны регулярные выражения (regex) — мощный инструмент для работы с текстом. С их помощью можно извлекать числа из любых комбинаций символов.

Формула для Google Таблиц:

=ARRAYFORMULA(SUM(IFERROR(VALUE(REGEXEXTRACT(A1:A10; "\d+")))))

Где:

  • \d+ — ищет одну или более цифр (0-9).
  • REGEXEXTRACT — извлекает первое найденное число.
  • VALUE — преобразует текстовое число в числовой формат.

Для Excel 365 с надстройкой LAMBDA можно использовать аналогичную логику:

=СУММ(ЗНАЧЕН(ПОИСКРЕГВЫР(A1:A10; "\d+")))
Внимание: в стандартном Excel без надстроек регулярные выражения не работают — используйте Power Query или VBA.

5. Способ: VBA-скрипт для автоматизации

Если вам часто приходится суммировать ячейки с текстом, имеет смысл написать макрос на VBA. Он будет извлекать числа из текста и возвращать их сумму. Пример кода:

Function SumNumbersFromText(rng As Range) As Double

Dim cell As Range

Dim num As String

Dim sum As Double

sum = 0

For Each cell In rng

If IsNumeric(cell.Value) Then

sum = sum + cell.Value

Else

' Извлекаем первое число из текста

num = ""

For i = 1 To Len(cell.Value)

If IsNumeric(Mid(cell.Value, i, 1)) Or Mid(cell.Value, i, 1) = "." Then

num = num & Mid(cell.Value, i, 1)

End If

Next i

If IsNumeric(num) Then sum = sum + CDbl(num)

End If

Next cell

SumNumbersFromText = sum

End Function

Чтобы использовать эту функцию:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в модуль (Insert → Module).
  3. В ячейке Excel введите =SumNumbersFromText(A1:A10).

VBA гибок: вы можете модифицировать скрипт, чтобы он игнорировал определённые символы (например, валюты) или работал с дробными числами.

Сравнение методов: какой выбрать?

Выбор способа зависит от объёма данных, формата текста и вашего уровня владения Excel. Ниже таблица с сравнением:

Метод Сложность Подходит для Ограничения
СУММЕСЛИ с * Простых текстовых пометок («опт», «%») Не извлекает числа из текста
Формулы (ПСТР, НАЙТИ) ⭐⭐ Стабильного формата («X шт», «Цена: Y») Сложно для нестандартных форматов
Power Query ⭐⭐⭐ Больших таблиц с разным форматом Требует навыков работы с инструментом
Регулярные выражения ⭐⭐⭐⭐ Сложных текстовых шаблонов Работает только в Google Таблицах или Excel 365
VBA ⭐⭐⭐⭐⭐ Автоматизации повторяющихся задач Требует знаний программирования

Для большинства пользователей оптимальный вариант — комбинация СУММЕСЛИ и формул извлечения (способ 1 и 2). Если данных много и они разнородные, осваивайте Power Query.

Частые ошибки и как их избежать

При суммировании ячеек с текстом пользователи часто сталкиваются с типичными проблемами. Вот как их решить:

⚠️ Внимание: Если формула возвращает #ЗНАЧ!, проверьте, нет ли в ячейках непечатаемых символов (например, переносов строк или пробелов). Используйте =ПЕЧСИМВ(A1), чтобы их обнаружить.

Ошибка 1: Формула не видит числа в тексте.

  • 🔸 Проверьте формат ячейки: если она отформатирована как текст, Excel не распознаёт числа. Используйте ЗНАЧЕН() для преобразования.
  • 🔸 Убедитесь, что разделитель дробной части совпадает с региональными настройками (в России это запятая, в США — точка).

Ошибка 2: Суммируются не те ячейки.

  • 🔸 В СУММЕСЛИ проверьте диапазоны: они должны быть одинакового размера.
  • 🔸 Используйте ЕСЛИОШИБКА, чтобы игнорировать ошибки: =ЕСЛИОШИБКА(ЗНАЧЕН(ПСТР(...)); 0).
⚠️ Внимание: Если в тексте есть несколько чисел (например, «5 из 10»), стандартные формулы извлекут только первое. Для таких случаев нужен VBA или Power Query с регулярными выражениями.

FAQ: Ответы на популярные вопросы

Можно ли суммировать ячейки, где есть определённый символ, но числа в другой колонке?

Да! Используйте СУММЕСЛИ с указанием диапазона суммирования. Например, чтобы сложить числа из колонки B, где в колонке A есть «%»:

=СУММЕСЛИ(A1:A10; "%"; B1:B10)
Как суммировать ячейки, где текст содержит число в определённом диапазоне (например, от 10 до 20)?

Используйте СУММПРОИЗВ с условиями:

=СУММПРОИЗВ(--(ЗНАЧЕН(ПОИСКРЕГВЫР(A1:A10; "\d+"))>=10); --(ЗНАЧЕН(ПОИСКРЕГВЫР(A1:A10; "\d+"))<=20); ЗНАЧЕН(ПОИСКРЕГВЫР(A1:A10; "\d+")))
Работает только в Excel 365 или Google Таблицах.
Почему ЗНАЧЕН() возвращает ошибку для текста «1 000 руб»?

Функция ЗНАЧЕН() не распознаёт разделители тысяч (пробелы или запятые). Замените их перед преобразованием:

=ЗНАЧЕН(ПОДСТАВИТЬ(A1; " "; ""))

Для европейского формата (где разделитель — точка) используйте:

=ЗНАЧЕН(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1; " "; ""); "."; ","))
Как автоматически обновлять сумму при изменении данных?

Если используете формулы, сумма обновляется автоматически. Для Power Query или VBA настройте:

  • 🔄 В Power Query: правой кнопкой по таблице → Обновить.
  • 🔄 В VBA: добавьте в код обработчик событий Worksheet_Change.
Есть ли разница между Excel и Google Таблицами в этих методах?

Основные отличия:

  • 🔹 В Google Таблицах есть встроенная поддержка REGEXEXTRACT, а в Excel — только с надстройками.
  • 🔹 Функция ЗНАЧЕН() в Google Таблицах называется VALUE() (но работает аналогично).
  • 🔹 Power Query в Google Таблицах доступен как надстройка Power Tools.