Быстрая очистка ячеек от мусора и лишних символов

Иван Корнев·21.05.2024·4 мин

Чтобы убрать лишние пробелы в Excel, используйте функцию =СЖПРОБЕЛЫ(ячейка). Она удаляет пробелы в начале и конце текста, а также сокращает множественные пробелы между словами до одного. Для удаления невидимых символов (табуляции, переносы строк) комбинируйте её с функцией ПОДСТАВИТЬ или используйте инструмент «Найти и заменить» (Ctrl+H).

Проблема «грязных» данных возникает при импорте из баз данных, копировании с веб-сайтов или выгрузке из 1С. Лишние пробелы ломают работу функций ВПР (VLOOKUP), сводных таблиц и корректную сортировку. Ниже приведены проверенные методы очистки для любых версий Excel.

Важно: После применения формул обязательно замените их на значения («Специальная вставка» → «Значения»), иначе при удалении исходных столбцов данные пропадут.

Базовая очистка: функция СЖПРОБЕЛЫ

Функция СЖПРОБЕЛЫ (англ. TRIM) — основной инструмент для приведения текста в порядок. Она работает только с обычными пробелами (код символа 32).

Алгоритм действий:

  1. Вставьте пустой столбец рядом с загрязненными данными.
  2. Введите формулу: =СЖПРОБЕЛЫ(A2), где A2 — первая ячейка с данными.
  3. Протяните формулу вниз до конца списка.
  4. Выделите полученный диапазон, нажмите Ctrl+C.
  5. Кликните правой кнопкой мыши по исходному столбцу и выберите Специальная вставкаЗначения (иконка с цифрами «123»).
  6. Удалите вспомогательный столбец.

Результат: Текст " Москва улица Ленина " превратится в "Москва улица Ленина".

Удаление невидимых символов и спецзнаков

Стандартная функция СЖПРОБЕЛЫ бессильна против неразрывных пробелов (часто встречаются при копировании из интернета), табуляций и переносов строк. Для них требуется комбинация функций.

Универсальная формула глубокой очистки

Эта конструкция удаляет обычные пробелы, неразрывные пробелы (CHAR(160)), табуляцию (CHAR(9)) и переносы строк (CHAR(10)):

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

Разбор логики:

  1. СИМВ(160) — заменяет неразрывный пробел на обычный (чтобы СЖПРОБЕЛЫ мог его убрать).
  2. СИМВ(9) и СИМВ(10) — полностью удаляют табы и переносы строк.
  3. СЖПРОБЕЛЫ — финально чистит оставшиеся лишние промежутки.

Если после очистки формулы всё равно выдают ошибки, проверьте наличие других непечатных символов через функцию =КОД(ПСТР(A2;1;1)). Это покажет числовой код первого символа.

Массовая замена через «Найти и заменить»

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

Инструкция:

  1. Выделите диапазон данных.
  2. Нажмите Ctrl+H.
  3. В поле «Найти»:
    • Для обычного пробела нажмите пробел.
    • Для неразрывного пробела зажмите Alt и наберите 0160 на цифровой клавиатуре (символ не появится визуально, но будет введен).
    • Для табуляции нажмите Ctrl+J (появится мигающая точка).
  4. Поле «Заменить на» оставьте пустым (для удаления) или введите один пробел (для замены на стандартный разделитель).
  5. Нажмите «Заменить все».

Будьте осторожны при замене пробелов на «пустоту» внутри слов (например, «Новый год» превратится в «Новыйгод»). Используйте этот метод только для удаления пробелов в начале/конце или специфических символов-мусора.

Автоматизация через Power Query

Для регулярной обработки больших массивов данных (тысячи строк) лучше использовать надстройку Power Query. Она не требует формул и сохраняет исходник нетронутым.

  1. Выделите таблицу и перейдите на вкладку ДанныеИз таблицы/диапазона.
  2. В редакторе Power Query выделите нужный столбец.
  3. На вкладке Преобразование выберите ФорматОчистить (удаляет непечатные символы) и Обрезать (удаляет пробелы по краям).
  4. Чтобы убрать двойные пробелы внутри текста, используйте замену значений: ГлавнаяЗаменить значения.
    • Найти: два пробела ( ).
    • Заменить на: один пробел ( ).
    • Повторяйте замену, пока счетчик замен не станет равен 0.
  5. Нажмите ГлавнаяЗакрыть и загрузить.

Сравнение методов очистки

МетодСложностьСкоростьЧто убираетКогда применять
СЖПРОБЕЛЫНизкаяВысокаяОбычные пробелыБыстрая разовая чистка
Комбо формулСредняяСредняяПробелы, табы, переносыГрязный импорт из веба
Найти/ЗаменитьНизкаяОчень высокаяКонкретные символыМассовое удаление мусора
Power QueryВысокаяВысокая (пакетно)Всё настраиваемоеРегулярные отчеты, большие данные

Макрос VBA для мгновенной очистки

Если вы очищаете данные ежедневно, добавьте макрос в книгу. Он обработает выделенный диапазон за секунду.

  1. Нажмите Alt+F11, вставьте новый модуль (InsertModule).
  2. Вставьте код:
Sub CleanSelection()
    Dim rng As Range
    Set rng = Selection
    
    ' Удаляем пробелы по краям и лишние внутренние пробелы
    rng.Value = Evaluate("IF(ROW(" & rng.Address & "), TRIM(" & rng.Address & "),)")
    
    ' Удаляем неразрывные пробелы, табы и переносы строк
    rng.Replace What:=Chr(160), Replacement:=" ", LookAt:=xlPart
    rng.Replace What:=Chr(9), Replacement:="", LookAt:=xlPart
    rng.Replace What:=Chr(10), Replacement:="", LookAt:=xlPart
    
    MsgBox "Очистка завершена!", vbInformation
End Sub
  1. Запустите макрос через Alt+F8, предварительно выделив ячейки.

Частые ошибки

  • Формула не срабатывает: Вы забыли закрепить результат через «Специальную вставку → Значения». При удалении столбца с исходными данными формула вернет ошибку #ССЫЛКА!.
  • ВПР не находит совпадения: В одной ячейке остался невидимый символ (например, пробел после цифры). Используйте формулу =ДЛСТР(A1) до и после очистки, чтобы увидеть разницу в длине текста.
  • Неверный синтаксис: В русской версии Excel разделитель аргументов — точка с запятой (;), в английской — запятая (,). Проверьте настройки своей системы.

FAQ

Как убрать все пробелы из числа, чтобы оно стало цифрой? Используйте формулу =ПОДСТАВИТЬ(A1; " "; ""). Если результат остается текстом, оберните её в =ЧИСЛО(...).

Почему СЖПРОБЕЛЫ не убирает пробел между буквами? Это может быть неразрывный пробел (код 160). Замените его на обычный через ПОДСТАВИТЬ(...; СИМВ(160); " ") перед применением СЖПРОБЕЛЫ.

Можно ли очистить данные в Excel Online? Да. Функции СЖПРОБЕЛЫ и ПОДСТАВИТЬ работают в веб-версии. Инструмент «Найти и заменить» также доступен в меню «Главная». Power Query в онлайн-версии имеет ограниченный функционал по сравнению с десктопом.