Работаете с большими таблицами в Microsoft Excel или Google Таблицах, где нужно просуммировать только те ячейки, которые содержат не только числа, но и буквы, знаки или комбинации символов? Типичная ситуация: в колонке смешаны цены с валютами («1000 руб.»), артикулы («A123-45»), или текстовые пометки («5 кг (опт)»). Стандартная функция СУММ() такие данные игнорирует — она работает только с чистыми числами. Но есть обходные пути!
В этой статье разберём 5 проверенных способов, как суммировать ячейки с текстом или символами — от простых формул до продвинутых техник с регулярными выражениями. Все методы работают в Excel 2010–2026 и Google Таблицах, а также адаптированы для русскоязычных и англоязычных версий. Вы узнаете, как извлечь числа из текста, проигнорировать лишние символы и даже автоматизировать процесс с помощью Power Query.
Проблема в том, что Excel по умолчанию воспринимает ячейки с текстом как нечисловые данные. Например, если в ячейке написано «15% скидка», то СУММ() её проигнорирует, хотя число 15 там есть. Решения зависят от задачи:
- 🔢 Извлечь числа из текста и сложить их (например, «
Товар 5шт» → суммировать5). - 📝 Суммировать ячейки, содержащие определённые символы (например, только те, где есть «
%» или «шт»). - 🔍 Проигнорировать текст и сложить только числовые части (например, «
1000 руб.» →1000).
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 Таблицы (через надстройку).
Алгоритм действий:
- Выделите диапазон данных →
Данные → Получение данных → Из таблицы/диапазона. - В редакторе Power Query добавьте пользовательский столбец с формулой извлечения чисел (например, для текста «
X шт»):= Number.FromText(Text.BeforeDelimiter([Column1], "шт")) - Удалите оригинальный столбец, оставьте только новый с числами.
- Нажмите
Закрыть и загрузить— данные вернутся в 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
Чтобы использовать эту функцию:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в модуль (
Insert → Module). - В ячейке 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.