Умение обрезать текст в Microsoft Excel — один из ключевых навыков при работе с данными. Часто импортированные таблицы содержат лишние пробелы, префиксы ("ID-", "№"), суффиксы ("_2026", ".xls") или служебные символы, которые мешают анализу. Например, вы загрузили прайс-лист поставщика, где артикулы имеют формат ART-0012345, а вам нужны только цифры. Или в отчёте ФИО записаны как Иванов И.И., но для сводной таблицы требуется только фамилия.
В этой статье разберём 7 практических методов обрезки текста — от базовых функций ЛЕВСИМВ/ПРАВСИМВ до автоматизации через Power Query и VBA. Особое внимание уделим типичным ошибкам (например, когда функция возвращает #ЗНАЧ!) и нюансам работы с кириллицей/латиницей. Все примеры адаптированы для Excel 2016–2023 и Microsoft 365.
Если вы работаете с большими массивами данных, где ручная правка заняла бы часы, автоматизация обрезки сэкономит до 80% времени. Например, при обработке 10 000 строк вручную вы потратите ~3 часа, а с формулами — менее 5 минут. Но важно выбрать правильный инструмент: для одноразовых задач хватит функций, для регулярных — лучше настроить Power Query или макрос.
1. Базовые функции: ЛЕВСИМВ, ПРАВСИМВ и ПСТР
Три основные функции для обрезки текста в Excel — это ЛЕВСИМВ (убирает символы слева), ПРАВСИМВ (убирает справа) и ПСТР (извлекает фрагмент по позиции). Их синтаксис прост, но есть нюансы с кириллическими символами и пробелами.
Пример использования ЛЕВСИМВ:
=ЛЕВСИМВ(A1; 3)
Эта формула вернёт первые 3 символа из ячейки A1. Если в A1 записано Привет!, результат будет При. Аналогично ПРАВСИМВ(A1; 2) вернёт т!.
Функция ПСТР гибче — она позволяет указать стартовую позицию и длину фрагмента:
=ПСТР(A1; 4; 2)
Здесь из A1 извлекаются 2 символа, начиная с 4-й позиции. Для текста Артикул:123 результат — 12.
⚠️ Внимание: В Excel для кириллицы и латиницы подсчёт символов ведётся по-разному. Например, в словеПривет(6 букв) функция=ДЛСТР(A1)вернёт 6, но если текст скопирован из PDF или веб-страницы, могут появиться невидимые символы (например,CHAR(160)— неразрывный пробел). Чтобы их удалить, используйте=ПЕЧСИМВ(A1).
- 🔹 ЛЕВСИМВ — обрезает n символов с начала строки. Пример:
=ЛЕВСИМВ("Тест"; 2)→ "Те". - 🔹 ПРАВСИМВ — обрезает n символов с конца. Пример:
=ПРАВСИМВ("Тест"; 2)→ "ст". - 🔹 ПСТР — извлекает фрагмент по позиции. Пример:
=ПСТР("Артикул-123"; 9; 3)→ "123".
| Функция | Синтаксис | Пример | Результат для "Образец" |
|---|---|---|---|
ЛЕВСИМВ | =ЛЕВСИМВ(текст; кол-во) | =ЛЕВСИМВ(A1; 3) | "Обр" |
ПРАВСИМВ | =ПРАВСИМВ(текст; кол-во) | =ПРАВСИМВ(A1; 2) | "ец" |
ПСТР | =ПСТР(текст; позиция; длина) | =ПСТР(A1; 4; 3) | "раз" |
2. Удаление пробелов: СЖПРОБЕЛЫ и ПЕЧСИМВ
Лишние пробелы — одна из самых распространённых проблем при импорте данных. Они могут быть в начале строки, между словами или в конце. Для их удаления используйте:
- 🔹
СЖПРОБЕЛЫ— убирает все лишние пробелы, кроме одиночных между словами. Пример:=СЖПРОБЕЛЫ(" Привет мир ")→ "Привет мир". - 🔹
ПЕЧСИМВ— удаляет все непечатаемые символы (включая табуляции и неразрывные пробелы). Пример:=ПЕЧСИМВ(CHAR(160) & "Текст")→ "Текст".
Если пробелы только в начале или конце строки, комбинируйте ЛЕВСИМВ/ПРАВСИМВ с функцией НАЙТИ, чтобы найти первый/последний значимый символ:
=ПРАВСИМВ(A1; ДЛСТР(A1) - НАЙТИ(" "; A1) + 1)
Эта формула обрежет всё после последнего пробела в ячейке.
⚠️ Внимание: ФункцияСЖПРОБЕЛЫне удаляет неразрывные пробелы (CHAR(160)), которые часто встречаются в данных, скопированных с веб-сайтов. Для их удаления используйте=ПОДСТАВИТЬ(A1; CHAR(160); " ").
3. Обрезка по разделителю: ТЕКСТ.ПОСЛЕ и ТЕКСТ.ДО (Excel 365)
В Microsoft 365 и Excel 2021 появились удобные функции ТЕКСТ.ПОСЛЕ и ТЕКСТ.ДО, которые извлекают часть строки до или после указанного разделителя. Это идеальный инструмент для работы с составными данными, например:
- 🔹
Иванов_Иван_Иванович→ извлечь фамилию. - 🔹
email@example.com→ получить домен. - 🔹
2026-05-15_Отчёт→ отделить дату.
Синтаксис:
=ТЕКСТ.ПОСЛЕ(текст; разделитель; [вхождение]; [совпадение_регистра])
=ТЕКСТ.ДО(текст; разделитель; [вхождение]; [совпадение_регистра])
Примеры:
=ТЕКСТ.ПОСЛЕ("Иванов_Иван"; "_") → "Иван"
=ТЕКСТ.ДО("report_2026.xlsx"; ".") → "report_2026"
Преимущество этих функций — они автоматически обрабатывают несколько вхождений разделителя. Например, для текста В старых версиях замените Эта формула извлечёт всё после символа "а_б_в_г" формула =ТЕКСТ.ПОСЛЕ(A1; "_"; 2) вернёт "в_г".
Что делать, если у вас Excel 2019 или старше?
ТЕКСТ.ПОСЛЕ комбинацией ПРАВСИМВ + НАЙТИ:
=ПРАВСИМВ(A1; ДЛСТР(A1) - НАЙТИ("@"; A1))@ в email.
4. Обрезка с помощью Power Query (для больших данных)
Если вам нужно обработать тысячи строк, ручное применение формул неэффективно. В этом случае используйте Power Query — инструмент для преобразования данных, встроенный в Excel 2016+. Он позволяет:
- 🔹 Удалить первые/последние N символов.
- 🔹 Разделить текст по разделителю (запятая, точка с запятой, пробел).
- 🔹 Заменить или удалить подстроки.
Пошаговая инструкция:
- Выделите исходные данные и перейдите на вкладку
Данные→Из таблицы/диапазона. - В редакторе Power Query выберите столбец →
Преобразовать→Формат→Обрезать. - Укажите, сколько символов удалить (например, 3 слева).
- Нажмите
Закрыть и загрузить.
Для разделения текста по разделителю используйте Разделить столбец → По разделителю. Например, если в ячейке Иванов;Петр;Сергеевич, вы можете разбить её на три отдельных столбца.
Выделить исходный диапазон|Открыть Power Query (Данные → Из таблицы)|Выбрать столбец для обрезки|Применить преобразование "Обрезать"|Сохранить и загрузить результат-->
⚠️ Внимание: При обрезке в Power Query изменения применяются ко всей колонке. Если в данных есть ячейки с разной структурой (например, где-то 5 символов для обрезки, а где-то 3), результат может быть некорректным. В таких случаях лучше использовать формулы или VBA.
5. Автоматизация через VBA (для повторяющихся задач)
Если вам регулярно приходится обрезать текст по одним и тем же правилам, напишите макрос. Например, этот код удаляет первые 5 символов во всех выделенных ячейках:
Sub TrimLeftCharacters()
Dim cell As Range
For Each cell In Selection
If Len(cell.Value) >= 5 Then
cell.Value = Right(cell.Value, Len(cell.Value) - 5)
End If
Next cell
End Sub
Чтобы запустить макрос:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert→Module). - Выделите ячейки в Excel и запустите макрос (
F5).
Для удаления последних символов замените Right на Left. Чтобы обрезать текст до/после определённого символа (например, @), используйте:
cell.Value = Mid(cell.Value, InStr(cell.Value, "@") + 1)
6. Типичные ошибки и как их избежать
При обрезке текста в Excel пользователи часто сталкиваются с ошибками. Вот самые распространённые и способы их решения:
- 🔹 #ЗНАЧ! — возникает, если в формуле указано количество символов больше, чем длина текста. Например,
=ЛЕВСИМВ("ABC"; 5). Исправление: добавьте проверку сЕСЛИОШИБКА:=ЕСЛИОШИБКА(ЛЕВСИМВ(A1; 10); A1) - 🔹 #ИМЯ? — опечатка в названии функции (например,
ЛЕВСИМВвместоЛЕВСИМВ). Проверьте синтаксис. - 🔹 Некорректный результат — если в тексте есть невидимые символы (например,
CHAR(10)— перевод строки). Используйте=ПЕЧСИМВдля очистки.
Ещё одна частая проблема — обрезка текста с учётом регистра. Например, если вы ищете разделитель "a", а в тексте есть "A", функция НАЙТИ не сработает. Решение: используйте ПОИСК (нечувствителен к регистру) или добавьте параметр [совпадение_регистра] в ТЕКСТ.ПОСЛЕ/ТЕКСТ.ДО.
| Ошибка | Причина | Решение |
|---|---|---|
#ЗНАЧ! | Количество символов превышает длину текста | Используйте ЕСЛИОШИБКА или проверку ДЛСТР |
#ИМЯ? | Опечатка в названии функции | Проверьте синтаксис (например, ЛЕВСИМВ, а не ЛЕВСИМВ) |
| Некорректный результат | Невидимые символы (пробелы, табуляции) | Примените СЖПРОБЕЛЫ или ПЕЧСИМВ |
| Функция не находит разделитель | Чувствительность к регистру | Используйте ПОИСК вместо НАЙТИ |
7. Продвинутые приёмы: регулярные выражения и пользовательские функции
Для сложных задач (например, удаление всех символов, кроме цифр, или обрезка текста по шаблону) используйте регулярные выражения. В Excel их поддерживает VBA. Пример функции для удаления всех нецифровых символов:
Function ExtractNumbers(rng As Range) As String
Dim regEx As New RegExp
regEx.Pattern = "[^0-9]"
regEx.Global = True
ExtractNumbers = regEx.Replace(rng.Value, "")
End Function
Чтобы использовать её, введите в ячейке =ExtractNumbers(A1). Функция вернёт только цифры (например, из ART-123-XYZ получится 123).
Другой пример — обрезка текста до первой цифры:
Function TextBeforeFirstNumber(rng As Range) As String
Dim regEx As New RegExp
regEx.Pattern = "^\D*"
TextBeforeFirstNumber = regEx.Execute(rng.Value)(0)
End Function
Для текста Привет123мир результат — Привет.
⚠️ Внимание: Для работы с регулярными выражениями в VBA необходимо подключить библиотекуMicrosoft VBScript Regular Expressions. Сделайте это черезTools→Referencesв редакторе VBA.
FAQ: Ответы на частые вопросы
Как обрезать текст в Excel Online?
В Excel Online доступны те же функции, что и в десктопной версии: ЛЕВСИМВ, ПРАВСИМВ, ПСТР. Однако Power Query и VBA здесь недоступны. Для сложных задач экспортируйте файл в десктопную версию.
Можно ли обрезать текст без формул?
Да, используйте инструмент Текст по столбцам (Данные → Текст по столбцам). Выберите разделитель (например, пробел или запятую) и укажите, какие столбцы сохранить.
Как удалить последние 3 символа, если длина текста разная?
Используйте формулу:
=ЛЕВСИМВ(A1; ДЛСТР(A1) - 3)
Она обрежет последние 3 символа независимо от исходной длины.
Почему функция ТЕКСТ.ПОСЛЕ не работает в моём Excel?
Функции ТЕКСТ.ПОСЛЕ и ТЕКСТ.ДО доступны только в Excel 365 и Excel 2021. В старых версиях используйте комбинацию ПРАВСИМВ + НАЙТИ.
Как обрезать текст в Google Таблицах?
В Google Sheets используйте аналогичные функции:
=LEFT(A1; 3)→ЛЕВСИМВ=RIGHT(A1; 2)→ПРАВСИМВ=MID(A1; 4; 2)→ПСТР
Для разделения текста используйте =SPLIT(A1; "-").