Функция ПЕЧАТЬ (в английской версии CLEAN) в Excel предназначена для удаления непечатных символов из текста. Однако пользователи часто сталкиваются с тем, что формула не работает, а скрытые пробелы или знаки переноса строки остаются в ячейках. Дело в том, что ПЕЧАТЬ удаляет только первые 32 непечатных символа 7-битной кодировки ASCII (с кодами от 0 до 31). Более высокие значения кодов, такие как популярный веб-символ неразрывного пробела (ASCII 160), эта функция попросту игнорирует.
Пошаговая инструкция по исправлению работы формулы
Шаг 1. Определите код «невидимого» символа
Прежде чем удалять символ, нужно узнать его точный код. Для этого выделите подозрительный пустой знак в строке формул, скопируйте его с помощью горячих клавиш Ctrl + C, вставьте в отдельную ячейку (например, B1) и примените формулу:
=КОДСИМВ(B1) Если формула вернула значение 160, это неразрывный пробел (HTML-сущность ), который стандартная функция ПЕЧАТЬ не способна обработать.
Шаг 2. Используйте функцию ПОДСТАВИТЬ для удаления ASCII 160
Чтобы избавиться от неразрывного пробела, замените его на обычный пробел или пустую строку с помощью функции ПОДСТАВИТЬ (SUBSTITUTE):
=ПОДСТАВИТЬ(A1; СИМВОЛ(160); "") После этого текст очистится, и вы сможете проводить с ним любые математические операции.
Шаг 3. Создайте универсальную формулу очистки
Для полной очистки текста от любых непечатных символов и лишних пробелов объедините функции СЖПРОБЕЛЫ, ПЕЧАТЬ и ПОДСТАВИТЬ:
=СЖПРОБЕЛЫ(ПЕЧАТЬ(ПОДСТАВИТЬ(A1; СИМВОЛ(160); " "))) Эта комбинация сначала заменит неразрывные пробелы на обычные, затем удалит системные ASCII-символы (0–31) и в конце уберет лишние пробелы по краям. Чистые данные критически важны для аналитики. Если вы планируете построить аппроксимацию графика в Excel, лишние невидимые символы исказят результаты.
Частые ошибки / Устранение неполадок
Ошибка: Формула возвращает ошибку #ЗНАЧ! после очистки.
Это происходит, если вы пытаетесь произвести математические вычисления с ячейкой, которая визуально содержит число, но Excel все еще считает ее текстом. Чтобы исправить это, преобразуйте результат в числовое значение, умножив формулу на 1 или обернув в функцию ЗНАЧЕН:
=ЗНАЧЕН(СЖПРОБЕЛЫ(ПЕЧАТЬ(ПОДСТАВИТЬ(A1; СИМВОЛ(160); "")))) Ошибка: Символы все равно не удаляются.
Возможно, в тексте присутствуют специфические Unicode-символы (например, мягкий перенос с кодом 173 или нулевой ширины). Определите их код через КОДСИМВ и добавьте еще один уровень вложенности ПОДСТАВИТЬ(A1; СИМВОЛ(код); "").
Дополнительно: Очистка данных с помощью VBA-макроса
Если у вас огромный массив данных, формулы могут замедлить работу книги. Быстрее использовать простой макрос. Нажмите Alt + F11, вставьте код в модуль и запустите его:
Sub CleanASCII160()
Dim cell As Range
For Each cell In Selection
If Not cell.HasFormula Then
cell.Value = Replace(cell.Value, Chr(160), "")
cell.Value = Application.WorksheetFunction.Clean(cell.Value)
End If
Next cell
End Sub Этот макрос мгновенно очистит выделенный диапазон ячеек от неразрывных пробелов и непечатных символов ASCII.
Иногда при импорте данных ломается не только текст, но и разметка — например, почему картинка вставляется поверх текста, мы разбирали ранее. А после успешной очистки таблицы вам наверняка потребуется динамическая нумерация при фильтрации в Excel для удобного и профессионального отображения строк.
Часто задаваемые вопросы
Почему функция ПЕЧАТЬ не удаляет пробелы между словами?
Функция ПЕЧАТЬ удаляет только непечатные символы ASCII (0-31). Для удаления лишних пробелов используйте функцию СЖПРОБЕЛЫ.
Как быстро найти код невидимого символа в ячейке?
Скопируйте этот символ и используйте формулу =КОДСИМВ(ячейка). Она вернет числовой код ASCII-символа.








