ГлавнаяБлогЛишние пробелы

Как убрать лишние пробелы в тексте, Word и Excel

2 августа 20267 минИнструменты

Лишние пробелы ломают ВПР, дедупликацию и сводные таблицы, потому что видов пробела несколько и на экране они выглядят одинаково. Разбираю на мокапах пять невидимых символов, коды замены в Word, цепочку формул в Excel, которой хватает на все случаи, и объясняю, почему одной СЖПРОБЕЛЫ обычно мало.

Коротко
  • Пробелов пять видов: обычный, неразрывный, узкий неразрывный, табуляция и символ нулевой ширины.
  • Ctrl+Shift+8 в Word показывает непечатаемые знаки — до этого чистить бесполезно.
  • В поле «Найти» неразрывный пробел вводится как ^s, табуляция как ^t, любой пробельный как ^w.
  • Замену двух пробелов на один повторяют, пока Word не покажет «Произведено замен: 0».
  • СЖПРОБЕЛЫ не трогает неразрывный: нужна цепочка с ПОДСТАВИТЬ(A2;СИМВОЛ(160);" ").
  • =КОДСИМВ(ПРАВСИМВ(A2;1)) показывает, какой именно символ стоит в конце ячейки.

Почему пробел не один

Лишний пробел кажется мелочью до первого столкновения. Потом выясняется, что ВПР не находит значение, которое видно глазами; дедупликация оставляет два одинаковых ключа; сводная таблица разносит «Москва» и «Москва » по разным строкам. Причина почти всегда одна: пробелов несколько видов, и на экране они выглядят одинаково.

Пять символов, которые выглядят как пробел на экране они одинаковые, но программы считают их разными символами СИМВОЛ КОД ОТКУДА ОБЫЧНО ПРИЛЕТАЕТ пробелU+0020обычный, нажатие пробеланеразрывныйU+00A0Word, копипаст с сайтов, 1Сузкий неразрывныйU+202Fразряды чисел: 1 000 000табуляцияU+0009выгрузки, копипаст из PDFнулевой шириныU+200Bкопипаст из веба, вообще не виден Четыре нижних — причина 90% случаев, когда «пробелов не видно, а поиск не работает». Обычная замена двух пробелов на один их не трогает.
Схема шире экрана — листается вбок пальцем →
Обычный пробел — код 32. Всё остальное в таблице выглядит так же, но обрабатывается иначе: обычная замена «два пробела на один» их не видит.

Неразрывный пробел прилетает чаще остальных. Его вставляет Word, когда вы жмёте Ctrl+Shift+Пробел, чтобы инициалы не отрывались от фамилии. Его же ставят на сайтах между числом и единицей измерения, и он приезжает вместе с копипастом таблицы. Выгрузки из 1С разделяют им разряды чисел.

Символ нулевой ширины — самый неприятный: он не занимает места вообще. Строка выглядит как «диван», а внутри шесть символов вместо пяти. Такое приезжает при копировании из веб-интерфейсов.

Чем это мешает на практике для человека строки одинаковые, для программы — разные купить диван купить диван· хвостовой пробел купить диван купить°диван неразрывный внутри ВПР возвращает #Н/Д, хотя значение в таблице глазами видноДедупликация оставляет две «одинаковые» строки в списке ключейСводная таблица делает из одного города два и делит по ним трафик
Схема шире экрана — листается вбок пальцем →
Три ситуации, из-за которых чистку пробелов делают не ради красоты, а чтобы данные вообще сошлись.

Как убрать лишние пробелы в Word

Начните с того, чтобы увидеть проблему. Ctrl+Shift+8 включает отображение непечатаемых знаков: обычный пробел станет точкой, неразрывный — кружком, табуляция — стрелкой. После этого станет понятно, что именно чистить.

Word: окно замены и коды невидимых символов Найти и заменить   Ctrl+H Найти: · ·  (два пробела) Заменить на: ·  (один пробел) Заменить все Что вводить в поле «Найти» ^sнеразрывный пробел^tтабуляция^wлюбой пробельный символ^pзнак абзаца — для пустых строк Сначала включите отображение знаков: Ctrl+Shift+8 Обычный пробел станет точкой ·, неразрывный — кружком °, табуляция — стрелкой →. Вслепую чистить бесполезно: вы не увидите, что именно стоит между словами.
Схема шире экрана — листается вбок пальцем →
Коды в поле «Найти» — способ добраться до символов, которые нельзя набрать с клавиатуры. ^w удобен, когда между словами намешаны и пробелы, и табуляции.

Дальше Ctrl+H и три прохода.

Двойные пробелы. В поле «Найти» два пробела, в «Заменить на» один, «Заменить все». Повторяйте, пока Word не отрапортует «Произведено замен: 0» — за один проход четыре пробела подряд превращаются в два, а не в один.
Неразрывные. В «Найти» пишете ^s, в «Заменить на» — обычный пробел. Осторожно с документами, где неразрывные стоят намеренно: в «10 кг» или «А. С. Пушкин» они нужны.
Пробелы перед знаками препинания. Ищете пробел с запятой, заменяете на запятую. То же для точки, двоеточия, восклицательного и вопросительного знаков.

Тем, кто чистит документы регулярно, пригодятся подстановочные знаки: галочка «Подстановочные знаки» в развёрнутом окне поиска, шаблон {2;} после пробела найдёт два и более подряд за один проход. Разделитель внутри фигурных скобок зависит от региональных настроек: в русской версии обычно точка с запятой, в английской запятая. Если шаблон не срабатывает, поменяйте разделитель — это первое, что стоит проверить.

Excel и Google Таблицы: формулы и подводный камень

В Excel за чистку отвечает СЖПРОБЕЛЫ: она обрезает пробелы по краям и схлопывает множественные внутри строки до одного. На этом её знание обычно и заканчивается, и вот тут начинаются вопросы вида «формула стоит, а пробел остался».

Excel: почему одной СЖПРОБЕЛЫ не хватает она чистит обычные пробелы и проходит мимо неразрывных Только СЖПРОБЕЛЫ =СЖПРОБЕЛЫ(A2) диван  угловой На вид пробел убрался. Но если между словами стоял неразрывный, он остался: СЖПРОБЕЛЫ работает с кодом 32. =КОДСИМВ(ПСТР(B2;6;1)) → 160 Полная цепочка =СЖПРОБЕЛЫ(ПЕЧСИМВ(   ПОДСТАВИТЬ(A2;СИМВОЛ(160);" ") )) диван угловой ПОДСТАВИТЬ меняет неразрывный на обычный, ПЕЧСИМВ убирает служебные коды 0–31, СЖПРОБЕЛЫ схлопывает остальное. Как проверить, что за символ мешает =КОДСИМВ(ПРАВСИМВ(A2;1)) — код последнего символа ячейки. 32 — обычный пробел, 160 — неразрывный, 9 — табуляция. Если вернулась буква, хвостового пробела нет и проблема в другом.
Схема шире экрана — листается вбок пальцем →
СЖПРОБЕЛЫ обрабатывает только символ с кодом 32. Неразрывный пробел она не считает пробелом и оставляет на месте.

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

Если мешает не только код 160, добавьте ещё один слой ПОДСТАВИТЬ с нужным кодом. Узнать код помогает КОДСИМВ: =КОДСИМВ(ПРАВСИМВ(A2;1)) покажет, что стоит в конце ячейки. Для символа нулевой ширины код будет 8203, и подставлять его придётся через ЮНИСИМВ.

Быстрый путь без формул: Ctrl+H, в поле «Найти» ставите курсор и набираете Alt+0160 на цифровой клавиатуре — так вводится неразрывный пробел, — в «Заменить на» обычный пробел. Работает, когда нужно почистить столбец на месте, не заводя вспомогательную колонку.

В Google Таблицах те же функции называются TRIM, CLEAN и SUBSTITUTE, а формула превращается в =TRIM(CLEAN(SUBSTITUTE(A2;CHAR(160);" "))). Плюс есть готовый пункт меню: Данные → Очистка данных → Удалить пробелы. Он делает то же, что TRIM, по выделенному диапазону и сразу на месте.

Когда быстрее почистить онлайн

Формулы и окна замены хороши, когда данные уже лежат в файле. Список, пришедший в сообщении, письме или выгруженный из сервиса, проще прогнать через чистку пробелов онлайн: вставили текст, получили нормализованный, скопировали дальше. Инструмент разом схлопывает двойные пробелы, обрезает края каждой строки, переводит табуляции и неразрывные в обычные и по желанию выбрасывает пустые строки.

В работе с семантикой это обязательный шаг перед всем остальным. Ключи собираются из разных источников: часть из Вордстата, часть из выгрузки конкурента, часть руками из брифа. Хвостовые пробелы там встречаются постоянно, и если не почистить сразу, удаление дубликатов пропустит половину повторов, а кластеризация разложит одну и ту же фразу в две группы.

Следом за чисткой обычно идёт разбивка текста по столбцам: строки вида «запрос;частотность;конкуренция» надо разложить по колонкам, и делать это лучше уже на чистых данных. Пара соседних задач: снять HTML-теги, если текст копировали прямо из кода страницы, и привести регистр, когда часть строк приехала капсом.

И правило, которое экономит время в длинной цепочке обработки: чистите пробелы первым действием, до сортировки, дедупликации и группировки. Любая операция сравнения строк даёт неверный результат на грязных данных, а искать причину потом дольше, чем один раз прогнать список через чистку.

Частые вопросы

Как убрать лишние пробелы в тексте?
Быстрее всего вставить текст в онлайн-чистку: она схлопывает двойные пробелы, обрезает края строк и переводит табуляции с неразрывными в обычные пробелы за одно действие. В Word ту же задачу решает Ctrl+H — замена двух пробелов на один с повтором до нуля замен.
Как удалить лишние пробелы в Word?
Нажмите Ctrl+H, в поле «Найти» поставьте два пробела, в «Заменить на» один и нажмите «Заменить все». Повторяйте, пока Word не покажет «Произведено замен: 0»: за один проход четыре пробела подряд превращаются в два. Отдельно замените ^s на обычный пробел, чтобы убрать неразрывные.
Почему СЖПРОБЕЛЫ не убирает пробел?
Потому что это не обычный пробел. СЖПРОБЕЛЫ обрабатывает только символ с кодом 32, а между словами часто стоит неразрывный пробел с кодом 160 — его функция за пробел не считает. Помогает цепочка =СЖПРОБЕЛЫ(ПЕЧСИМВ(ПОДСТАВИТЬ(A2;СИМВОЛ(160);" "))).
Как узнать, какой символ мешает в ячейке?
Формулой =КОДСИМВ(ПРАВСИМВ(A2;1)) для последнего символа или =КОДСИМВ(ПСТР(A2;5;1)) для символа на нужной позиции. Код 32 — обычный пробел, 160 — неразрывный, 9 — табуляция, 8203 — символ нулевой ширины.
Как убрать лишние пробелы в Excel без формул?
Через Ctrl+H: в поле «Найти» два пробела, в «Заменить на» один, повторить до нуля замен. Неразрывный пробел вводится в поле поиска сочетанием Alt+0160 на цифровой клавиатуре. Такой способ меняет данные на месте, вспомогательный столбец не нужен.
Что такое неразрывный пробел и откуда он берётся?
Символ с кодом 160, который не даёт разорвать строку в этом месте при переносе. Его ставят в Word сочетанием Ctrl+Shift+Пробел, чтобы инициалы не отрывались от фамилии, и на сайтах между числом и единицей измерения. При копировании таблиц он приезжает вместе с текстом.
Как убрать пробелы в Google Таблицах?
Функцией =TRIM(A2) или готовым пунктом меню «Данные → Очистка данных → Удалить пробелы». Если в данных есть неразрывные пробелы, используйте =TRIM(CLEAN(SUBSTITUTE(A2;CHAR(160);" "))) — SUBSTITUTE переведёт их в обычные.
Почему ВПР не находит значение, которое есть в таблице?
Частая причина — невидимый символ в одной из ячеек: хвостовой пробел, неразрывный пробел внутри фразы или табуляция. Для программы «купить диван» и «купить диван » это разные строки. Прогоните оба столбца через СЖПРОБЕЛЫ с ПОДСТАВИТЬ и попробуйте снова.

Главное

Если коротко

Пробел не один, их пять, и выглядят они одинаково. Поэтому чистка начинается с того, чтобы увидеть символ: Ctrl+Shift+8 в Word, КОДСИМВ в Excel. Дальше работает связка «сначала перевести все виды пробелов в обычный, потом схлопнуть»: в Word это замена по кодам ^s и ^t, в Excel цепочка ПОДСТАВИТЬ → ПЕЧСИМВ → СЖПРОБЕЛЫ. И держите чистку первым шагом в обработке списков: сравнение, дедупликация и группировка на грязных данных врут молча.

Список пришёл текстом — прогоните его через чистку пробелов: двойные пробелы, края строк, табуляции, неразрывные и пустые строки за одно нажатие.

Больше разборов в Telegram — «Digital-трафик»

Читать дальше

Все статьи
Ссылка скопирована