Как обрезать знаки в Excel: от простых символов до сложных шаблонов

Почему обрезка символов в Excel — это не только про удаление пробелов

Работа с текстовыми данными в Microsoft Excel часто требует предварительной очистки: лишние пробелы, служебные символы, префиксы или суффиксы мешают анализу. Но обрезка знаков — это не только удаление ненужных символов, но и инструмент для нормализации данных, подготовки к сводным таблицам или импорту в другие системы. Например, при загрузке данных из или CRM в ячейках могут оставаться артефакты вроде кавычек, знаков валюты или неразрывных пробелов, которые ломают формулы.

В этой статье мы разберём 7 практических способов обрезки символов — от базовых функций ЛЕВСИМВ/ПРАВСИМВ до регулярных выражений в Power Query. Вы узнаете, как:

  • 📌 Удалить первые/последние N символов (включая пробелы и непечатаемые знаки)
  • 🔍 Обрезать текст по условию (например, убрать все символы после запятой)
  • ⚡ Автоматизировать очистку с помощью VBA и Power Query
  • 📊 Обработать массивы данных без потери структуры

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

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

Способ 1: Базовые функции ЛЕВСИМВ, ПРАВСИМВ и СЖПРОБЕЛЫ

Начнём с классики — встроенных текстовых функций. Они подходят для простых задач, когда нужно удалить фиксированное количество символов с начала или конца строки.

Функция ЛЕВСИМВ (или LEFT в английской версии) возвращает заданное количество символов с левого края текста. Чтобы обрезать первые 3 символа в ячейке A1, используйте:

=ПРАВСИМВ(A1;ДЛСТР(A1)-3)

Аналогично работает ПРАВСИМВ (для правого края). Например, чтобы убрать последние 2 символа:

=ЛЕВСИМВ(A1;ДЛСТР(A1)-2)

Для удаления всех пробелов (кроме одиночных между словами) используйте СЖПРОБЕЛЫ. Но помните: она не удаляет неразрывные пробелы (CHAR(160))! Чтобы очистить их, комбинируйте с ПОДСТАВИТЬ:

=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(A1;СИМВОЛ(160);" "))
⚠️ Внимание: Функции ЛЕВСИМВ/ПРАВСИМВ не работают с массивами (например, в Excel 365 для динамических диапазонов). Для этого используйте ТЕКСТПОСЛЕ/ТЕКСТДО.
ФункцияПримерРезультат для " Привет! "
СЖПРОБЕЛЫ=СЖПРОБЕЛЫ(A1)"Привет!"
ЛЕВСИМВ=ЛЕВСИМВ(A1;3)" П"
ПРАВСИМВ=ПРАВСИМВ(A1;3)"т! "
ПОДСТАВИТЬ + СЖПРОБЕЛЫ=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(A1;СИМВОЛ(160);" "))"Привет!" (удаляет неразрывные пробелы)

Способ 2: Обрезка по условию с функциями ПОИСК, НАЙТИ и ПСТР

Когда нужно удалить символы до или после определённого знака (например, обрезать всё после "@" в email), используйте комбинацию ПОИСК/НАЙТИ с ПСТР (или МИД).

Пример: обрезать всё после первого пробела в ячейке A1 ("Иванов Иван" → "Иванов"):

=ЛЕВСИМВ(A1;ПОИСК(" ";A1)-1)

Если разделитель может отсутствовать, добавьте проверку на ошибку:

=ЕСЛИОШИБКА(ЛЕВСИМВ(A1;ПОИСК(" ";A1)-1);A1)

Для обрезки до последнего вхождения (например, удалить домен в "user@example.com" → "user") используйте:

=ЛЕВСИМВ(A1;ПОИСК("@";A1;ПОИСК("@";A1)-1)-1)
=ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;" ";""))+ПОИСК("~";ПОДСТАВИТЬ(A1;" ";"~";ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;" ";""))))

Это поможет обрезать фамилию из полного ФИО ("Иванов Иван Петрович" → "Иванов").-->

Способ 3: Текстовые функции Excel 365 — ТЕКСТПОСЛЕ, ТЕКСТДО и ТЕКСТРАЗД

В Excel 365 и Excel 2021 появились динамические текстовые функции, которые упрощают обрезку по разделителям. Они работают с массивами и автоматически обрабатывают ошибки.

ТЕКСТДО возвращает часть текста до указанного разделителя. Например, извлечь домен из email:

=ТЕКСТДО(A1;"@";-1)  // Вернёт всё после "@"

ТЕКСТПОСЛЕ — наоборот, берёт текст после разделителя:

=ТЕКСТПОСЛЕ(A1;"@")  // Вернёт "example.com" из "user@example.com"

Для обрезки по нескольким разделителям используйте ТЕКСТРАЗД:

=ТЕКСТРАЗД(A1;{",";";"-"};ИСТИНА)  // Разобьёт строку по запятой, пробелу или тире
⚠️ Внимание: Функции ТЕКСТДО/ТЕКСТПОСЛЕ чувствительны к регистру. Если разделитель может быть в разных регистрах (например, "a" или "A"), используйте НИЖН.РЕГ для нормализации:

=ТЕКСТДО(НИЖН.РЕГ(A1);"a")

Способ 4: Power Query — обрезка для больших данных

Если вам нужно очистить тысячи строк, ручные формулы неэффективны. В этом случае используйте Power Query (вкладка Данные → Получить данные). Этот инструмент позволяет:

  • 🔄 Применять преобразования к миллионам строк без тормозов
  • 📋 Сохранять шаги очистки для повторного использования
  • 🔍 Использовать регулярные выражения для сложных шаблонов

Пример: обрезать первые 5 символов в столбце Text:

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

Для обрезки по регулярному выражению (например, удалить все нецифровые символы):

  1. Выберите столбец → Преобразовать → Заменить значения.
  2. В поле Найти введите regex: [^0-9] (удаляет всё, кроме цифр).
  3. Оставьте поле Заменить на пустым.
Пример regex для удаления всех символов КРОМЕ букв и пробелов

Используйте выражение [^a-zA-Zа-яА-ЯёЁ ]. Это удалит цифры, знаки препинания и специальные символы, оставив только текст и пробелы.

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

Если вам нужно повторять обрезку регулярно или обрабатывать данные по сложным правилам, напишите макрос. Например, этот код удаляет первые 3 символа во всех выделенных ячейках:

Sub TrimLeftChars()

Dim rng As Range

Dim cell As Range

Set rng = Selection

For Each cell In rng

If Len(cell.Value) > 3 Then

cell.Value = Right(cell.Value, Len(cell.Value) - 3)

End If

Next cell

End Sub

Для обрезки по условию (например, удалить всё после ":"):

Sub TrimAfterDelimiter()

Dim rng As Range

Dim cell As Range

Dim pos As Integer

Set rng = Selection

For Each cell In rng

pos = InStr(cell.Value, ":")

If pos > 0 Then

cell.Value = Left(cell.Value, pos - 1)

End If

Next cell

End Sub

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

  1. Нажмите Alt + F11 для открытия редактора VBA.
  2. Вставьте код в модуль (Insert → Module).
  3. Вернитесь в Excel, выделите ячейки и запустите макрос через View → Macros.
⚠️ Внимание: Перед запуском макроса сохраните файл (желательно в формате .xlsm). Если макрос удаляет данные, проверьте его на копии таблицы — отмена действий (Ctrl+Z) после выполнения VBA может не сработать.

Выделить нужный диапазон ячеек|Сохранить файл как .xlsm|Проверить макрос на тестовых данных|Отключить обновление экрана (Application.ScreenUpdating = False) для ускорения-->

Способ 6: Обрезка непечатаемых символов (CHAR)

Иногда в данных скрываются невидимые символы, которые портят сортировку или сравнение. Например:

  • CHAR(160) — неразрывный пробел (похож на обычный, но не удаляется СЖПРОБЕЛЫ)
  • CHAR(13) — возврат каретки (остаётся после экспорта из Word)
  • CHAR(9) — табуляция

Чтобы их удалить, используйте ПОДСТАВИТЬ с СЖПРОБЕЛЫ:

=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;СИМВОЛ(160);" ");СИМВОЛ(13);" ");СИМВОЛ(9);" "))

Для удаления всех непечатаемых символов (кроме пробелов) используйте VBA:

Function CleanText(rng As Range) As String

Dim i As Integer

Dim result As String

result = rng.Value

For i = 1 To Len(result)

If Asc(Mid(result, i, 1)) < 32 Or Asc(Mid(result, i, 1)) > 126 Then

result = Replace(result, Mid(result, i, 1), "")

End If

Next i

CleanText = Trim(result)

End Function

В ячейке вызовите её как =CleanText(A1).

Способ 7: Обрезка с учётом формата ячеек

Если ячейка отформатирована как дата, время или число, обрезка текста может привести к ошибкам. Например, в ячейке с форматом дд.мм.гггг значение "01.12.2023" хранится как число 45263. Если применить ЛЕВСИМВ, Excel вернёт не "01.12", а часть числового представления.

Чтобы обрезать отформатированные данные:

  1. Сначала преобразуйте ячейку в текст с помощью =ТЕКСТ(A1;"0") или =ЗНАЧЕН(A1).
  2. Затем применяйте текстовые функции.

Пример: обрезать год из даты в формате "дд.мм.гггг" → "дд.мм":

=ЛЕВСИМВ(ТЕКСТ(A1;"дд.мм.гггг");5)
⚠️ Внимание: Если после обрезки вы планируете использовать данные в вычислениях (например, сложить числа), не забывайте возвращать формат ячейки обратно с помощью =ЗНАЧЕН(). Иначе Excel будет воспринимать "123" как текст, а не как число.

FAQ: Частые вопросы об обрезке символов в Excel

Можно ли обрезать символы в нескольких столбцах одновременно?

Да, в Excel 365 используйте динамические массивы. Например, чтобы удалить первые 2 символа в диапазоне A1:D10:

=ПРАВСИМВ(A1:D10;ДЛСТР(A1:D10)-2)

Формула автоматически заполнит все ячейки результатом. В старых версиях Excel придётся копировать формулу в каждый столбец или использовать VBA.

Как удалить все символы КРОМЕ цифр?

Используйте комбинацию ПОДСТАВИТЬ с СТРОЧН и ЦЕЛОЕ:

=ЦЕЛОЕ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(...

// Или проще через Power Query с regex: [^0-9].

Для VBA подойдёт функция:

Function ExtractNumbers(rng As Range) As String

ExtractNumbers = Application.WorksheetFunction.Sum(--

Filter(Mid(rng.Value, Row(1:100), 1), {"0","1","2","3","4","5","6","7","8","9"}))

End Function

Почему после обрезки остаются пустые строки?

Это происходит, если:

  • Исходная ячейка содержала только удаляемые символы (например, 3 пробела, а вы обрезаете первые 3 символа).
  • Формула возвращает пустую строку как результат (например, =ТЕКСТПОСЛЕ(A1; "@"), если "@" в ячейке нет).

Чтобы избежать пустых строк, добавьте проверку:

=ЕСЛИ(ДЛСТР(ТЕКСТПОСЛЕ(A1; "@"))=0; ""; ТЕКСТПОСЛЕ(A1; "@"))
Как обрезать текст в защищённой ячейке?

Если ячейка защищена от изменений, вы не сможете применить формулы или макросы, которые модифицируют её значение. Решения:

  1. Снимите защиту с листа (Рецензирование → Снять защиту листа).
  2. Скопируйте данные в новый диапазон и работайте с ним.
  3. Используйте Power Query — он не требует разблокировки ячеек.
Можно ли отменить обрезку после сохранения файла?

Если вы обрезали данные с помощью формул, исходные значения можно восстановить, если:

  • Файл сохранён в формате .xlsx (не .csv или .txt).
  • Вы не перезаписывали исходные ячейки (например, использовали вспомогательный столбец для формул).

Если данные были изменены макросом или Power Query без резервной копии, восстановление невозможно. Всегда сохраняйте оригинал данных на отдельном листе!