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

Лишние пробелы между буквами в ячейках Excel — распространённая проблема, которая портит внешний вид таблиц, мешает сортировке и фильтрации данных, а иногда даже приводит к ошибкам в формулах. Вы могли столкнуться с этим после импорта данных из внешних источников (например, , CRM-систем или веб-скрапинга), при копировании текста из PDF или после неаккуратного ручного ввода. В отличие от очевидных пробелов в начале или конце ячейки, межсимвольные пробелы сложнее заметить невооружённым глазом, но они так же вредят аналитике.

В этой статье мы разберём 5 проверенных методов удаления пробелов между буквами — от простых функций до автоматизации через VBA. Вы узнаете, как исправить данные как в отдельных ячейках, так и во всём столбце за несколько кликов, а также научитесь предотвращать появление пробелов в будущем. Все решения протестированы на Excel 2010–2023 и Office 365, включая веб-версию.

1. Функция TRIM: быстрое решение для стандартных пробелов

Функция TRIM (или СЖПРОБЕЛЫ в русской версии Excel) — первое средство для борьбы с лишними пробелами. Она удаляет все пробелы в начале и конце ячейки, а также сокращает несколько пробелов между словами до одного. Однако у неё есть ограничение: TRIM не убирает пробелы между буквами внутри слова (например, "П р и м е р" останется без изменений).

Как применить:

  1. В пустой ячейке рядом с исходными данными введите формулу:
    =TRIM(A1)

    или для русской версии:

    =СЖПРОБЕЛЫ(A1)
  2. Растяните формулу на весь столбец (потяните за правый нижний угол ячейки).
  3. Скопируйте результаты (Ctrl+C) и вставьте их поверх исходных данных через Специальная вставка → Значения.

Если TRIM не помог, значит, пробелы замаскированы под неразрывные пробелы (код CHAR(160)) или другие непечатаемые символы. Переходите к следующему методу.

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

2. Комбинация функций ПЕЧСИМВ + ПОДСТАВИТЬ для неразрывных пробелов

Неразрывные пробелы (вставляются через Ctrl+Shift+Space) и другие "невидимые" символы не удаляются через TRIM. Чтобы их убрать, используйте комбинацию функций CLEAN (ПЕЧСИМВ) и SUBSTITUTE (ПОДСТАВИТЬ).

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

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(CLEAN(A1), CHAR(160), ""), CHAR(9), ""), " ", "")

Расшифровка:

  • 🔹 CLEAN(A1) — удаляет непечатаемые символы.
  • 🔹 CHAR(160) — неразрывный пробел.
  • 🔹 CHAR(9) — символ табуляции.
  • 🔹 " ", "" — заменяет обычные пробелы на пустоту (уберите эту часть, если нужно оставить пробелы между словами).

Для русской версии Excel замените названия функций:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПЕЧСИМВ(A1); СИМВОЛ(160); ""); СИМВОЛ(9); ""); " "; "")

Создайте резервную копию файла|Проверьте тип пробелов (нажмите F2 и посмотрите на курсор)|Примените формулу к одной ячейке для теста|Используйте "Специальную вставку" для сохранения результатов-->

3. Найти и заменить: ручной метод для небольших таблиц

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

  • 📌 Удаления обычных пробелов (введите пробел в поле "Найти", оставьте "Заменить на" пустым).
  • 📌 Замены неразрывных пробелов (скопируйте неразрывный пробел из ячейки или вставьте через Alt+0160 на цифровой клавиатуре).
  • 📌 Удаления табуляций (используйте ^t в поле "Найти").

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

  1. Выделите диапазон ячеек для обработки.
  2. Нажмите Ctrl+H.
  3. В поле "Найти" вставьте пробел (или неразрывный пробел).
  4. Оставьте поле "Заменить на" пустым.
  5. Нажмите "Заменить всё".
⚠️ Внимание: Этот метод необратимо изменяет исходные данные. Если в тексте должны оставаться пробелы между словами (например, "Иванов Иван"), используйте формулы из предыдущих разделов или замените пробелы на другой символ (например, подчёркивание _).
Как вставить неразрывный пробел в поле "Найти"

Нажмите Ctrl+F, вставьте в любую ячейку неразрывный пробел (через Ctrl+Shift+Space), скопируйте его и вставьте в поле "Найти" в окне замены.

4. Макрос VBA для массовой обработки

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

Sub RemoveAllSpaces()

Dim rng As Range

Dim cell As Range

Set rng = Selection

For Each cell In rng

cell.Value = Replace(cell.Value, " ", "")

cell.Value = Replace(cell.Value, Chr(160), "")

cell.Value = Replace(cell.Value, Chr(9), "")

Next cell

End Sub

Как использовать:

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

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

Sub RemoveInnerSpaces()

Dim rng As Range

Dim cell As Range

Dim i As Integer, newStr As String

Set rng = Selection

For Each cell In rng

newStr = ""

For i = 1 To Len(cell.Value)

If Mid(cell.Value, i, 1) <> " " And Mid(cell.Value, i, 1) <> Chr(160) Then

newStr = newStr & Mid(cell.Value, i, 1)

End If

Next i

cell.Value = newStr

Next cell

End Sub

⚠️ Внимание: Макросы работают только в файлах с расширением .xlsm (с поддержкой макросов). При открытии файла Excel может показать предупреждение о безопасности — разрешите выполнение макросов, если доверяете источнику.

5. Power Query: продвинутая очистка данных

Инструмент Power Query (доступен в Excel 2016 и новее) позволяет очищать данные на уровне импорта. Это полезно, если вы регулярно загружаете данные из внешних источников (например, CSV или баз данных).

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

  1. Выделите исходные данные и перейдите на вкладку Данные → Из таблицы/диапазона (или Get & Transform → From Table/Range).
  2. В редакторе Power Query выделите столбец с пробелами.
  3. Перейдите на вкладку Преобразование и выберите Заменить значения.
  4. В поле "Значение для поиска" введите пробел, в "Замена" оставьте пустым. Для неразрывных пробелов используйте #(00A0).
  5. Нажмите Закрыть и загрузить, чтобы применить изменения.

Преимущества Power Query:

  • 🔄 Очистка применяется автоматически при обновлении данных.
  • 📊 Можно создать несколько шагов преобразования (например, сначала удалить пробелы, затем привести текст к верхнему регистру).
  • 🔗 Поддерживает многоуровневую отмену (в отличие от макросов).
Метод Удаляет обычные пробелы Удаляет неразрывные пробелы Сохраняет пробелы между словами Подходит для больших данных
TRIM ✅ Да (в начале/конце) ❌ Нет ✅ Да ✅ Да
ПОДСТАВИТЬ + ПЕЧСИМВ ✅ Да ✅ Да ❌ Нет (если не настроить) ✅ Да
Найти и заменить ✅ Да ✅ Да (вручную) ❌ Нет ❌ Нет (ручной труд)
Макрос VBA ✅ Да ✅ Да ✅ Да (настраивается) ✅ Да
Power Query ✅ Да ✅ Да ✅ Да (настраивается) ✅ Да

6. Профилактика: как избежать пробелов в будущем

Лучший способ борьбы с пробелами — не допускать их появления. Вот проверенные методы профилактики:

  • 📥 Импорт данных: При загрузке из CSV или TXT используйте Power Query с предварительной очисткой. В мастере импорта выбирайте опцию "Текстовый формат" для столбцов с пробелами.
  • 🖥️ Копирование из веб: Вставляйте текст через Специальная вставка → Текст (или Ctrl+Alt+V → T), чтобы избежать скрытых символов.
  • 📝 Ручной ввод: Отключите автозамену пробелов на неразрывные в Файл → Параметры → Правописание → Параметры автозамены.
  • 🔄 Шаблоны: Создайте шаблон файла с макросом очистки (из раздела 4) и используйте его как основу для новых таблиц.

Если вы часто работаете с "грязными" данными, создайте пользовательскую функцию в VBA для универсальной очистки:

Function CleanText(rng As Range) As String

Dim str As String

str = rng.Value

str = Replace(str, " ", "")

str = Replace(str, Chr(160), "")

str = Replace(str, Chr(9), "")

str = Trim(str)

CleanText = str

End Function

Теперь в любой ячейке можно использовать =CleanText(A1).

FAQ: Частые вопросы о пробелах в Excel

Почему после применения TRIM пробелы между буквами остались?

TRIM удаляет только пробелы в начале/конце ячейки и сокращает несколько пробелов между словами до одного. Если пробелы внутри слова (например, "П р и м е р"), используйте комбинацию ПОДСТАВИТЬ + ПЕЧСИМВ или макрос из раздела 4.

Как узнать, какой тип пробела в ячейке: обычный или неразрывный?

Два способа:

  1. Нажмите F2, чтобы перейти в режим редактирования, и посмотрите на курсор: если пробел широкий — это неразрывный пробел.
  2. Используйте формулу =КОДСИМВ(СРЗНАЧ(А1;1;1)) — если результат 160, это неразрывный пробел.
Можно ли удалить пробелы только в начале/конце ячейки, не трогая пробелы внутри?

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

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

Это происходит, если в ячейке были только пробелы (например, " "). После замены они становятся пустыми. Чтобы избежать этого, добавьте проверку на длину строки:

=ЕСЛИ(ДЛСТР(SUBSTITUTE(A1; " "; ""))=0; ""; SUBSTITUTE(A1; " "; ""))
Как автоматизировать очистку пробелов при открытии файла?

Создайте макрос в модуле ThisWorkbook с событием Workbook_Open:

Private Sub Workbook_Open()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets

ws.Cells.Replace What:=" ", Replacement:="", LookAt:=xlPart

ws.Cells.Replace What:=Chr(160), Replacement:="", LookAt:=xlPart

Next ws

End Sub

⚠️ Внимание: Этот макрос будет удалять все пробелы во всех листах при каждом открытии файла. Используйте с осторожностью!