Лишние пробелы, дефисы, кавычки или цифры в ячейках Excel искажают данные, мешают сортировке и нарушают работу формул. Например, при импорте данных из CSV часто появляются неразрывные пробелы ( ), которые не видны, но блокируют функцию СЧЁТЕСЛИ. Или в столбце с телефонами остаются скобки и тире после копирования из веб-формы. Такие символы нужно удалять — и делать это эффективно, не перебивая данные вручную.
В этой статье разберём 7 способов очистки ячеек: от простых (замена через Ctrl+H) до продвинутых (регулярные выражения в Power Query). Вы узнаете, как убрать все пробелы сразу, оставить только цифры в тексте, или удалить символы по шаблону (например, первые 3 знака). Каждый метод проиллюстрирован скриншотами и примерами формул — вы сможете применить их к своим данным без ошибок.
1. Быстрая замена символов через Найти и заменить (Ctrl+H)
Самый универсальный способ для удаления одиночных символов или их комбинаций — инструмент Найти и заменить. Он работает во всех версиях Excel (включая Excel 2010 и Excel 365) и не требует знания формул. Подходит для:
- 📌 Удаления конкретного знака (например,
#,$,%) - 📌 Массового удаления пробелов (включая неразрывные)
- 📌 Замены нескольких символов на один (например,
--→-)
Как использовать:
- Выделите диапазон ячеек (например,
A1:A100). - Нажмите
Ctrl+Hили перейдите на вкладкуГлавная→Найти и выделить→Заменить. - В поле
Найтивведите символ для удаления (например,;). ПолеЗаменить наоставьте пустым. - Нажмите
Заменить все.
Ограничения метода:
- ❌ Не работает для удаления диапазона символов (например, "первые 2 буквы").
- ❌ Нельзя удалить символы по условию (например, "все цифры после буквы
А").
2. Удаление пробелов функциями СЖПРОБЕЛЫ, ПЕЧСИМВ и ЗАМЕНИТЬ
Если в ячейках лишние пробелы (в начале, конце или между словами), используйте текстовые функции. Они автоматически очистят данные без ручного вмешательства.
| Функция | Назначение | Пример | Результат |
|---|---|---|---|
СЖПРОБЕЛЫ | Удаляет все пробелы, кроме одиночных между словами | =СЖПРОБЕЛЫ(" Привет мир ") | Привет мир |
ПЕЧСИМВ | Убирает все пробелы (включая между словами) | =ПЕЧСИМВ(A1; " ") | Приветмир |
ЗАМЕНИТЬ | Заменяет конкретный символ на пустоту | =ЗАМЕНИТЬ(A1; "-"; "") | 89123456789 (из 8-912-345-67-89) |
Как применить:
- В пустой столбец рядом с исходными данными введите формулу (например,
=СЖПРОБЕЛЫ(A1)). - Протяните формулу вниз до конца диапазона.
- Скопируйте результаты (
Ctrl+C) и вставьте какЗначения(ПКМ→Специальная вставка→Значения) поверх исходных данных.
Как удалить пробелы в начале/конце ячейки без формул
В Excel 2016+ есть встроенная функция ТРИМ (аналог СЖПРОБЕЛЫ). Выделите диапазон → вкладка Данные → Текст по столбцам → на 3-м шаге выберите Пропустить и отметьте Удалить ведущие пробелы.
⚠️ Внимание: ФункцияПЕЧСИМВудаляет все указанные символы. Если нужно оставить пробелы между словами, используйтеСЖПРОБЕЛЫили комбинацию=ЗАМЕНИТЬ(СЖПРОБЕЛЫ(A1); " "; "")для полного удаления.
3. Удаление символов по позиции: ЛЕВСИМВ, ПРАВСИМВ, ПСТР
Если нужно удалить символы с начала, конца или середины ячейки (например, префикс ID- или суффикс _2026), используйте функции работы с подстроками:
- 📍
ЛЕВСИМВ— удаляет N символов слева. - 📍
ПРАВСИМВ— удаляет N символов справа. - 📍
ПСТР— извлекает фрагмент текста по заданным позициям.
Примеры:
=ПРАВСИМВ(A1; 4) // Удаляет последние 4 символа (например, ".xlsx" → "файл")
=ЛЕВСИМВ(A1; 3) // Убирает первые 3 символа (например, "123Александр" → "Александр")
=ПСТР(A1; 4; 10) // Возвращает 10 символов, начиная с 4-го
Для удаления всех символов до/после определённого знака комбинируйте ПСТР с НАЙТИ:
=ПСТР(A1; НАЙТИ("@"; A1)+1; 99) // Удаляет всё до "@" (например, "user@gmail.com" → "gmail.com")
Убедитесь, что длина текста в ячейках одинаковая|Проверьте, нет ли в данных пустых ячеек|Сохраните резервную копию файла перед массовыми изменениями|Тестируйте формулы на копии данных, а не в оригинале-->
4. Удаление всех нецифровых символов (оставить только числа)
Частая задача — оставить в ячейке только цифры, удалив буквы, знаки и пробелы. Например, привести телефон +7 (912) 345-67-89 к виду 79123456789. Для этого есть 3 способа:
Способ 1: Формула с ПЕЧСИМВ и ПОДСТАВИТЬ
Универсальный метод для Excel 2013+:
=--ПЕЧСИМВ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1; "("; ""); ")"; ""); "-"; ""); " "; ""); "+"; ""); "."; ""); ","; ""); "/"; ""); "\"; ""); "*"; ""); "_"; ""))
Формула последовательно удаляет все нецифровые символы. Двойной минус (--) преобразует результат в число.
Способ 2: Power Query (Excel 2016+)
Более надёжный метод для больших массивов данных:
- Выделите диапазон → вкладка
Данные→Из таблицы/диапазона(Power Query). - В редакторе выберите столбец →
Преобразовать→Заменить значения. - В поле
Значение для поискавведите[^0-9](регулярное выражение для всех нецифровых символов). - Поле
Заменить наоставьте пустым. НажмитеОК→Закрыть и загрузить.
Способ 3: VBA-макрос
Для автоматизации очистки:
Sub УдалитьНеЦифры()
Dim rng As Range
For Each rng In Selection
rng.Value = Application.WorksheetFunction.Substitute( _
Application.WorksheetFunction.Substitute( _
Application.WorksheetFunction.Substitute( _
Application.WorksheetFunction.Substitute( _
Application.WorksheetFunction.Substitute( _
Application.WorksheetFunction.Substitute( _
Application.WorksheetFunction.Substitute( _
Application.WorksheetFunction.Substitute( _
Application.WorksheetFunction.Substitute( _
rng.Value, "(", ""), ")",""), "-",""), " ", ""), "+",""), ".",""), ",",""), "/",""), "\",""), "*",""), "_","")
Next rng
End Sub
Выделите ячейки и запустите макрос (Alt+F8 → выберите УдалитьНеЦифры).
Формулы в Excel|Power Query|VBA-макросы|Ручная замена (Ctrl+H)|Другой метод-->
5. Удаление букв (оставить только цифры и символы)
Обратная задача — убрать все буквы, оставив цифры, знаки и пробелы. Актуально для очистки артикулов (ABC-123-XYZ → 123) или номеров документов. Решения:
Формульный метод
Используйте комбинацию ПЕЧСИМВ с перечислением всех букв алфавита:
=ПЕЧСИМВ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(...ПОДСТАВИТЬ(A1; "Я"; "")...; "А"; ""); "а"; ""); "abcdefghijklmnopqrstuvwxyzАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ")
Минус: длинная формула. Альтернатива — VBA:
VBA-решение
Function УдалитьБуквы(rng As Range) As String
Dim i As Integer, s As String
s = rng.Value
For i = Len(s) To 1 Step -1
If Asc(Mid(s, i, 1)) >= Asc("А") And Asc(Mid(s, i, 1)) <= Asc("я") Then
s = Left(s, i - 1) & Mid(s, i + 1)
End If
Next i
УдалитьБуквы = s
End Function
Введите в ячейку =УдалитьБуквы(A1).
6. Продвинутая очистка: регулярные выражения в Power Query
Для сложных шаблонов (например, удалить все символы после запятой или оставить только email) используйте регулярные выражения в Power Query (доступно в Excel 2016+). Примеры:
| Задача | Регулярное выражение | Пример |
|---|---|---|
| Удалить всё после запятой | ,[^,]*$ | Иванов, Петр → Иванов |
| Оставить только цифры и тире | [^0-9-] | ABC-123-XYZ → 123- |
| Убрать все символы кроме букв и пробелов | [^а-яА-Яa-zA-Z ] | Привет! 123 → Привет |
| Удалить повторяющиеся пробелы | [ ]{2,} | Привет мир → Привет мир |
Как применить:
- Импортируйте данные в Power Query (
Данные→Из таблицы/диапазона). - Выберите столбец →
Преобразовать→Заменить значения→Дополнительно. - Включите опцию
Использовать регулярные выраженияи введите шаблон.
7. Автоматизация: макросы для массовой очистки
Если очищать данные приходится регулярно, запишите VBA-макрос. Примеры готовых решений:
Макрос 1: Удаление всех непечатаемых символов
Убирает пробелы, табуляции, переводы строк:
Sub УдалитьНепечатаемыеСимволы()
Dim rng As Range
For Each rng In Selection
rng.Value = Application.WorksheetFunction.Clean(rng.Value)
Next rng
End Sub
Макрос 2: Удаление символов по списку
Удаляет все указанные символы (редактируйте список в массиве symbolsToRemove):
Sub УдалитьСимволыПоСписку()
Dim rng As Range, i As Integer
Dim symbolsToRemove As Variant
symbolsToRemove = Array(":", ";", "!", "?", "#", "$", "%", "&", "*", "+", "-", "/", "\", "(", ")")
For Each rng In Selection
For i = LBound(symbolsToRemove) To UBound(symbolsToRemove)
rng.Value = Replace(rng.Value, symbolsToRemove(i), "")
Next i
Next rng
End Sub
Макрос 3: Очистка телефонов
Преобразует номера телефонов к единому формату (например, +7 (912) 345-67-89 → 79123456789):
Sub ОчиститьТелефоны()
Dim rng As Range
For Each rng In Selection
rng.Value = Application.WorksheetFunction.Substitute( _
Application.WorksheetFunction.Substitute( _
Application.WorksheetFunction.Substitute( _
Application.WorksheetFunction.Substitute( _
Application.WorksheetFunction.Substitute( _
rng.Value, "(", ""), ")",""), "-",""), " ", ""), "+","")
Next rng
End Sub
⚠️ Внимание: Перед запуском макросов сохраните файл в формате.xlsm(с поддержкой макросов) и включите их выполнение в настройках Excel (Файл→Параметры→Центр управления безопасностью→Параметры центра...→Включить все макросы).
FAQ: Частые вопросы по удалению символов
Как удалить неразрывный пробел, который не виден, но мешает формулам?
Неразрывный пробел ( ) удаляется через Найти и заменить (Ctrl+H): в поле Найти введите (удерживайте Alt и наберите 0160 на цифровой клавиатуре). Поле Заменить на оставьте пустым. Альтернатива — функция =СЖПРОБЕЛЫ(A1).
Можно ли удалить символы в Excel Online?
В Excel Online доступны базовые функции: Найти и заменить (Ctrl+H), СЖПРОБЕЛЫ, ЗАМЕНИТЬ. Power Query и VBA не поддерживаются. Для сложных задач скачайте файл в настольную версию Excel.
Как удалить первые 3 символа во всех ячейках столбца?
Используйте функцию ПРАВСИМВ с отрицательным смещением или ПСТР:
=ПСТР(A1; 4; 99) // Пропускает первые 3 символа и возвращает остаток
Для массового применения протяните формулу вниз, затем замените результаты на значения (ПКМ → Специальная вставка → Значения).
Почему после удаления символов формулы перестали работать?
Вероятные причины:
- 🔹 Формулы ссылаются на исходные ячейки, которые вы заменили на значения. Обновите ссылки.
- 🔹 Удалены символы, которые были частью формульных разделителей (например,
;в=ЕСЛИ(A1>10; "Да"; "Нет")). - 🔹 Данные стали текстом вместо чисел (используйте
=ЗНАЧЕН(A1)для преобразования).
Как удалить все символы кроме букв и пробелов?
В Power Query:
- Загрузите данные в Power Query.
- Выберите столбец →
Преобразовать→Заменить значения→Дополнительно. - Включите
Использовать регулярные выраженияи введите в полеЗначение для поиска:[^а-яА-Яa-zA-Z ]. - Поле
Заменить наоставьте пустым. НажмитеОК.
В формулах Excel:
=ПЕЧСИМВ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(...ПОДСТАВИТЬ(A1; "9"; "")...; "0"; ""); "1"; ""); "0123456789!@#$%^&*()_+=[]{};':"|<>?/~`")