Как отрезать символы в Excel: от простых функций до автоматизации

Умение обрезать текст в Microsoft Excel — один из ключевых навыков при работе с данными. Часто импортированные таблицы содержат лишние пробелы, префиксы ("ID-", "№"), суффиксы ("_2026", ".xls") или служебные символы, которые мешают анализу. Например, вы загрузили прайс-лист поставщика, где артикулы имеют формат ART-0012345, а вам нужны только цифры. Или в отчёте ФИО записаны как Иванов И.И., но для сводной таблицы требуется только фамилия.

В этой статье разберём 7 практических методов обрезки текста — от базовых функций ЛЕВСИМВ/ПРАВСИМВ до автоматизации через Power Query и VBA. Особое внимание уделим типичным ошибкам (например, когда функция возвращает #ЗНАЧ!) и нюансам работы с кириллицей/латиницей. Все примеры адаптированы для Excel 2016–2023 и Microsoft 365.

Если вы работаете с большими массивами данных, где ручная правка заняла бы часы, автоматизация обрезки сэкономит до 80% времени. Например, при обработке 10 000 строк вручную вы потратите ~3 часа, а с формулами — менее 5 минут. Но важно выбрать правильный инструмент: для одноразовых задач хватит функций, для регулярных — лучше настроить Power Query или макрос.

📊 Как часто вам приходится обрезать текст в Excel?
Ежедневно
Раз в неделю
Редико
Никогда

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 символов.
  • 🔹 Разделить текст по разделителю (запятая, точка с запятой, пробел).
  • 🔹 Заменить или удалить подстроки.

Пошаговая инструкция:

  1. Выделите исходные данные и перейдите на вкладку ДанныеИз таблицы/диапазона.
  2. В редакторе Power Query выберите столбец → ПреобразоватьФорматОбрезать.
  3. Укажите, сколько символов удалить (например, 3 слева).
  4. Нажмите Закрыть и загрузить.

Для разделения текста по разделителю используйте Разделить столбецПо разделителю. Например, если в ячейке Иванов;Петр;Сергеевич, вы можете разбить её на три отдельных столбца.

Выделить исходный диапазон|Открыть 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

Чтобы запустить макрос:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (InsertModule).
  3. Выделите ячейки в 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. Сделайте это через ToolsReferences в редакторе 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; "-").