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

Работа с текстом в Microsoft Excel часто требует очистки данных от лишних символов — будь то случайные пробелы, разделители, скобки или непечатаемые знаки. Эти "артефакты" мешают сортировке, фильтрации и анализу, а в больших таблицах их ручное удаление занимает часы. К счастью, в Excel есть как минимум 7 способов автоматизировать эту задачу: от встроенных функций ПСТР и ПОДСТАВИТЬ до мощного инструмента Найти и заменить с поддержкой регулярных выражений (в новых версиях).

В этой статье вы найдёте пошаговые инструкции для всех версий Excel (2010–2026, включая Excel Online), а также решения для специфических случаев: удаление первых/последних символов в ячейке, очистка текста от всех знаков кроме букв и цифр, и даже обработка данных с помощью Power Query. Особое внимание уделено типичным ошибкам — например, почему функция СЖПРОБЕЛЫ не убирает неразрывные пробелы, и как это исправить.

1. Удаление пробелов: от лишних до неразрывных

Пробелы — самый распространённый "мусор" в Excel. Они появляются при импорте данных из CSV, копировании с веб-страниц или ручном вводе. Встроенная функция СЖПРОБЕЛЫ удаляет только лишние пробелы между словами, но не трогает пробелы в начале/конце ячейки. Для полной очистки понадобится комбинация функций или инструмент Найти и заменить.

Пример формулы для удаления всех пробелов (включая неразрывные, которые выглядят как обычные, но не удаляются стандартными методами):

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;" ";"");СИМВОЛ(160);"");СИМВОЛ(13);"")
  • 🔹 СИМВОЛ(160) — неразрывный пробел (вставляется через Alt+0160)
  • 🔹 СИМВОЛ(13) — символ переноса строки (остаётся после копирования из Word)
  • 🔹 " ";"" — заменяет обычные пробелы на пустую строку

Если пробелы только в начале или конце ячейки, достаточно функции ОБРЕЗАТЬ:

=ОБРЕЗАТЬ(A1)
⚠️ Внимание: Функция ОБРЕЗАТЬ не удаляет неразрывные пробелы (СИМВОЛ(160))! Для них используйте ПОДСТАВИТЬ(A1;СИМВОЛ(160);"").

2. Удаление первых/последних символов в ячейке

Частая задача — убрать префиксы (например, "+7" в телефонах) или суффиксы (например, "%" в процентах). Для этого подойдут функции ПРАВСИМВ, ЛЕВСИМВ и ПСТР.

Примеры:

ЗадачаФормулаПример
Удалить первые 3 символа=ПРАВСИМВ(A1;ДЛСТР(A1)-3)Из "abc123" → "123"
Удалить последние 2 символа=ЛЕВСИМВ(A1;ДЛСТР(A1)-2)Из "123xy" → "123"
Убрать "+7" в начале номера=ЕСЛИ(ЛЕВСИМВ(A1;2)="+7";ПРАВСИМВ(A1;ДЛСТР(A1)-2);A1)Из "+79123456789" → "9123456789"

Для динамического удаления (например, убрать все символы до первого пробела) используйте комбинацию ПОИСК и ПСТР:

=ПСТР(A1;ПОИСК(" ";A1)+1;ДЛСТР(A1))
📊 Какой способ удаления символов вы используете чаще?
Формулы Excel
Найти и заменить
Power Query
VBA-макросы
Другой

3. Инструмент "Найти и заменить": универсальный метод

Самый быстрый способ удалить символы без формул — Ctrl+H (или Найти и заменить в меню Главная). Этот метод работает даже для непечатаемых символов, если знать их коды.

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

  1. Выделите диапазон ячеек.
  2. Нажмите Ctrl+H.
  3. В поле Найти введите символ (или его код через Alt+XXXX на цифровой клавиатуре).
  4. Оставьте поле Заменить на пустым.
  5. Нажмите Заменить всё.
  • 🔹 Для удаления табуляций введите в поле Найти^t.
  • 🔹 Для разрывов строк^l.
  • 🔹 Для всех непечатаемых символов — используйте ^p (возврат каретки) и ^n (новая строка).

Выделить только нужный диапазон (не всю таблицу)|

Создать резервную копию данных (Ctrl+C → вставить на новый лист)|

Проверить включён ли режим "Учитывать регистр" (если нужно)|

Использовать предварительный просмотр (Найти далее) перед массовой заменой

-->

⚠️ Внимание: В Excel 2016 и старше при замене непечатаемых символов (например, ^l) может появиться ошибка "Не найдено". В этом случае используйте функцию ПОДСТАВИТЬ с кодом символа: =ПОДСТАВИТЬ(A1;СИМВОЛ(10);"").

4. Удаление всех символов КРОМЕ букв и цифр

Если нужно оставить в ячейке только буквенно-цифровые символы (например, очистить строку от скобок, тире, знаков валюты), используйте Power Query или формулу массива. Последний вариант работает в Excel 365 и Excel 2021:

=ТЕКСТПРИСОЕД(ФИЛЬТР(ПОСИМВОЛЬНО(A1);(КОД(ПОСИМВОЛЬНО(A1))>=48)(КОД(ПОСИМВОЛЬНО(A1))<=57)+(КОД(ПОСИМВОЛЬНО(A1))>=65)(КОД(ПОСИМВОЛЬНО(A1))<=90)+(КОД(ПОСИМВОЛЬНО(A1))>=97)*(КОД(ПОСИМВОЛЬНО(A1))<=122));""))

Разберём формулу:

  • 🔹 ПОСИМВОЛЬНО(A1) — разбивает текст на массив символов.
  • 🔹 КОД(...) — возвращает ASCII-код каждого символа.
  • 🔹 ФИЛЬТР — оставляет только символы с кодами:
    • 48–57 — цифры 0–9;
    • 65–90 — заглавные буквы A–Z;
    • 97–122 — строчные буквы a–z.
  • 🔹 ТЕКСТПРИСОЕД — собирает отфильтрованные символы обратно в строку.

Для Excel 2010–2019 используйте Power Query:

  1. Выделите данные → Данные → Из таблицы/диапазона.
  2. В редакторе Power Query выберите столбец → Преобразовать → Заменить значения.
  3. В поле Найти введите регулярное выражение [^a-zA-Z0-9].
  4. Оставьте поле Заменить на пустым.
Как включить Power Query в Excel 2010–2016?

В Excel 2010–2013 Power Query устанавливается как надстройка с сайта Microsoft (бесплатно). В Excel 2016 она встроена, но может быть отключена: перейдите в Файл → Параметры → Надстройки → Управление: Надстройки COM → Перейти и поставьте галочку напротив Microsoft Power Query for Excel.

5. Удаление повторяющихся символов

Если в ячейке дублируются символы (например, "соообщение" или "111222333"), их можно удалить с помощью формулы или VBA. Для формульного подхода в Excel 365 используйте:

=ТЕКСТПРИСОЕД(ЕСЛИ(ПОСИМВОЛЬНО(A1)<>ЛЕВСИМВ(ПРАВСИМВ(A1;ДЛСТР(A1)-ПОИСК(ПОСИМВОЛЬНО(A1);A1;НАЙТИ(ПОСИМВОЛЬНО(A1);A1))+1));ПОСИМВОЛЬНО(A1);"");""))

Для более простого случая (например, убрать повторяющиеся пробелы) хватит:

=ПОДСТАВИТЬ(A1;"  ":" ")

(Заменяет два пробела на один; повторите операцию 2–3 раза для длинных строк.)

Для сложных дублей (например, "ааабббввв" → "абв") напишите VBA-макрос:

Function RemoveDuplicates(r As Range) As String

Dim s As String, i As Long, c As String

s = r.Value

For i = Len(s) To 1 Step -1

c = Mid(s, i, 1)

If InStr(1, RemoveDuplicates, c) = 0 Then RemoveDuplicates = c & RemoveDuplicates

Next i

End Function

Введите в ячейку: =RemoveDuplicates(A1).

6. Удаление символов по маске (регулярные выражения)

В Excel 2021 и Excel 365 появилась поддержка регулярных выражений в функциях ТЕКСТДО, ТЕКСТПОСЛЕ и РАЗДЕЛИТЬ. Это позволяет удалять символы по шаблону. Например, чтобы убрать все знаки препинания:

=ТЕКСТПРИСОЕД(ФИЛЬТР(ПОСИМВОЛЬНО(A1);НЕ(РЕГВЫРАЖ.СОВПАД(ПОСИМВОЛЬНО(A1);"[[:punct:]]")));"")

Расшифровка регулярных выражений для Excel:

ШаблонЧто ищетПример
[0-9]Любую цифру"1", "2" и т.д.
[A-Za-z]Любую латинскую букву"a", "B", "z"
[[:punct:]]Любой знак препинания".", ",", "!", "?"
\sЛюбой пробел (включая табуляции)" ", СИМВОЛ(9)

Для удаления всех символов, кроме цифр, используйте:

=ТЕКСТПРИСОЕД(ФИЛЬТР(ПОСИМВОЛЬНО(A1);РЕГВЫРАЖ.СОВПАД(ПОСИМВОЛЬНО(A1);"[0-9]"));"")
⚠️ Внимание: Регулярные выражения в Excel работают только в английской версии функций! Если ваш Excel русифицирован, используйте =ТЕКСТСЦЕП(ФИЛЬТР(...)) вместо ТЕКСТПРИСОЕД.

7. Автоматизация: макросы для удаления символов

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

Sub CleanNonAlpha()

Dim rng As Range, cell As Range

Set rng = Selection

For Each cell In rng

cell.Value = WorksheetFunction.Substitute( _

WorksheetFunction.Substitute( _

WorksheetFunction.Substitute( _

cell.Value, " ", ""), _

Chr(160), ""), _

"[^A-Za-zА-Яа-я0-9]", "")

Next cell

End Sub

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

  1. Нажмите Alt+F11 для открытия редактора VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Вернитесь в Excel, выделите диапазон и запустите макрос через Alt+F8.

Для удаления конкретных символов (например, "#", "$", "%") модифицируйте строку:

cell.Value = Replace(Replace(Replace(cell.Value, "#", ""), "$", ""), "%", "")

FAQ: Частые вопросы по удалению символов в Excel

Как удалить все символы после определённого знака (например, "-" или "@")?

Используйте комбинацию ЛЕВСИМВ и ПОИСК:

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

Для Excel 365 подойдёт ТЕКСТДО:

=ТЕКСТДО(A1;"-";1)
Почему СЖПРОБЕЛЫ не убирает пробелы в начале ячейки?

Функция СЖПРОБЕЛЫ удаляет только лишние пробелы между словами, но не трогает пробелы в начале/конце. Для их удаления используйте ОБРЕЗАТЬ:

=ОБРЕЗАТЬ(СЖПРОБЕЛЫ(A1))
Как удалить все символы, кроме последних 4 (например, оставить только год в дате "31.12.2023")?

Примените ПРАВСИМВ:

=ПРАВСИМВ(A1;4)

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

=ПРАВСИМВ(A1;ДЛСТР(A1)-ПОИСК(".";ПОДСТАВИТЬ(A1;".";"#";ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;".;""))))+1)
Можно ли удалить символы в Excel Online?

Да, но с ограничениями:

  • 🔹 Найти и заменить (Ctrl+H) работает.
  • 🔹 Функции ПОДСТАВИТЬ, ОБРЕЗАТЬ, ПСТР доступны.
  • 🔹 Power Query и VBA — нет.
  • 🔹 Регулярные выражения — только в формулах (начиная с 2021 года).

Как удалить символы в столбце, не затрагивая формулы?

Сначала преобразуйте формулы в значения:

  1. Выделите столбец.
  2. Нажмите Ctrl+C (скопировать).
  3. Правой кнопкой → Специальная вставка → Значения.
  4. Теперь применяйте методы удаления символов.