Работа с текстом в 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))
3. Инструмент "Найти и заменить": универсальный метод
Самый быстрый способ удалить символы без формул — Ctrl+H (или Найти и заменить в меню Главная). Этот метод работает даже для непечатаемых символов, если знать их коды.
Пошаговая инструкция:
- Выделите диапазон ячеек.
- Нажмите
Ctrl+H. - В поле
Найтивведите символ (или его код черезAlt+XXXXна цифровой клавиатуре). - Оставьте поле
Заменить напустым. - Нажмите
Заменить всё.
- 🔹 Для удаления табуляций введите в поле
Найти—^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:
- Выделите данные →
Данные → Из таблицы/диапазона. - В редакторе Power Query выберите столбец →
Преобразовать → Заменить значения. - В поле
Найтивведите регулярное выражение[^a-zA-Z0-9]. - Оставьте поле
Заменить напустым.
Как включить 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
Чтобы запустить макрос:
- Нажмите
Alt+F11для открытия редактора VBA. - Вставьте код в новый модуль (
Insert → Module). - Вернитесь в 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 года).
Как удалить символы в столбце, не затрагивая формулы?
Сначала преобразуйте формулы в значения:
- Выделите столбец.
- Нажмите
Ctrl+C(скопировать). - Правой кнопкой →
Специальная вставка → Значения. - Теперь применяйте методы удаления символов.