Быстрая очистка чисел от пробелов в Excel
Чтобы удалить пробелы в числах в Excel и превратить их в полноценные числа для расчетов, используйте функцию =ЗНАЧЕН(ПОДСТАВИТЬ(A1;" ";"")) или инструмент «Найти и заменить» (Ctrl+H). Это устраняет лишние символы, включая неразрывные пробелы, и позволяет корректно сортировать, фильтровать и суммировать данные.
Ниже — подробные инструкции для разных ситуаций: от простой замены до автоматизации через макросы.
Оглавление
Почему Excel не видит числа
Часто при импорте данных из 1С, банковских выписок или веб-страниц числа сохраняются как текст. Признаки проблемы:
- Числа выровнены по левому краю ячейки.
- В левом верхнем углу ячейки появляется зеленый треугольник.
- Функция
СУММигнорирует эти ячейки или возвращает 0. - При попытке умножить или сложить такие ячейки возникает ошибка.
Главная причина — наличие лишних пробелов (обычных или неразрывных ) и текстового формата ячейки.
Способ 1: Найти и заменить
Этот метод подходит, если нужно быстро очистить диапазон без создания дополнительных столбцов.
- Выделите диапазон с данными.
- Нажмите Ctrl + H.
- В поле Найти поставьте обычный пробел (нажмите пробел на клавиатуре).
- Поле Заменить на оставьте пустым.
- Нажмите Заменить все.
Важно: Если после этой операции числа всё ещё остались текстом (выровнены по левому краю), значит, в данных присутствуют неразрывные пробелы (код символа 160). Обычный пробел их не найдет.
Как убрать неразрывные пробелы:
- Скопируйте неразрывный пробел из любой ячейки с проблемой (выделите его в строке формул и нажмите Ctrl+C).
- Вставьте его в поле Найти в окне замены (Ctrl+V).
- Нажмите Заменить все.
Способ 2: Формулы для очистки
Если данные нужно сохранить в исходном виде, а очищенный вариант получить в новом столбце, используйте формулы.
Базовая очистка
Для удаления обычных пробелов и преобразования текста в число:
=ЗНАЧЕН(ПОДСТАВИТЬ(A1; " "; ""))
ПОДСТАВИТЬудаляет все пробелы.ЗНАЧЕН(илиVALUE) превращает полученную строку в число.
Глубокая очистка (пробелы + неразрывные пробелы)
Если в данных смешаны разные типы пробелов:
=ЗНАЧЕН(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1; СИМВОЛ(160); ""); " "; ""))
СИМВОЛ(160)— это код неразрывного пробела.- Сначала убираем неразрывные, затем обычные.
Использование СЖПРОБЕЛЫ
Функция СЖПРОБЕЛЫ (TRIM) удаляет лишние пробелы в начале и конце строки, а также двойные пробелы внутри, оставляя по одному между словами. Для чистых чисел она менее эффективна, чем ПОДСТАВИТЬ, так как оставляет один пробел, если он был разделителем тысяч. Лучше комбинировать:
=ЗНАЧЕН(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(A1); " "; ""))
После применения формулы не забудьте скопировать результат и вставить его как Значения (Специальная вставка → Значения), чтобы избавиться от зависимостей.
Способ 3: Умное преобразование без формул
Если вам не нужны формулы, можно принудительно заставить Excel пересчитать данные.
Метод «Текст по столбцам»
- Выделите столбец с проблемными числами.
- Перейдите на вкладку Данные → Текст по столбцам.
- Нажмите Готово (ничего не меняя в настройках).
Excel принудительно перезапишет данные, распознав их тип. Это часто исправляет формат «текст» на «число» и убирает невидимые символы.
Метод «Умножение на 1»
- В любую пустую ячейку введите число
1. - Скопируйте эту ячейку (Ctrl+C).
- Выделите диапазон с проблемными числами.
- Нажмите правой кнопкой мыши → Специальная вставка.
- Выберите операцию Умножить и нажмите ОК.
Все выделенные ячейки будут умножены на 1, что автоматически конвертирует текстовые значения в числа.
Способ 4: Макрос VBA
Для регулярной обработки больших файлов удобно использовать макрос. Он удаляет все пробелы и неразрывные пробелы в выделенном диапазоне.
- Нажмите Alt + F11, чтобы открыть редактор VBA.
- В меню выберите Insert → Module.
- Вставьте следующий код:
Sub CleanNumbers()
Dim cell As Range
Dim cleanValue As String
Application.ScreenUpdating = False
For Each cell In Selection
If Not IsEmpty(cell) Then
' Заменяем неразрывный пробел (Chr(160)) и обычный пробел на пустоту
cleanValue = Replace(Replace(cell.Value, Chr(160), ""), " ", "")
' Проверяем, является ли результат числом
If IsNumeric(cleanValue) Then
cell.Value = CDbl(cleanValue)
cell.NumberFormat = "General" ' Или нужный формат, например "#,##0.00"
End If
End If
Next cell
Application.ScreenUpdating = True
End Sub
- Закройте редактор.
- Выделите нужные ячейки в Excel.
- Нажмите Alt + F8, выберите
CleanNumbersи нажмите Выполнить.
Частые ошибки
| Ошибка | Причина | Решение |
|---|---|---|
Формула возвращает #ЗНАЧ! | В ячейке есть буквы или спецсимволы, кроме пробелов | Используйте ПЕЧСИМВ вместе с ПОДСТАВИТЬ или проверьте данные визуально |
| Числа остались текстом после замены | Использован неразрывный пробел, а не обычный | Замените СИМВОЛ(160) или скопируйте пробел из ячейки |
| Разделитель десятичной дроби неверен | В данных точка, а в Excel настроена запята (или наоборот) | Используйте ПОДСТАВИТЬ для замены точки на запятую перед преобразованием: =ЗНАЧЕН(ПОДСТАВИТЬ(A1;".";",")) |
| Зеленые треугольники не исчезают | Ячейка имеет формат «Текстовый» | После очистки измените формат ячейки на «Числовой» и дважды кликните по ячейке (или используйте «Текст по столбцам») |
FAQ
Вопрос: Как удалить пробелы только в конце или начале числа?
Ответ: Используйте функцию СЖПРОБЕЛЫ(A1). Она уберет ведущие и замыкающие пробелы, но оставит внутренние. Если нужно убрать все — используйте ПОДСТАВИТЬ.
Вопрос: Почему после удаления пробелов сумма всё равно не считается?
Ответ: Скорее всего, ячейки остались в текстовом формате. Примените метод «Текст по столбцам» или умножение на 1, чтобы принудительно изменить тип данных.
Вопрос: Можно ли удалить пробелы во всем файле сразу?
Ответ: Да, выделите все листы (удерживая Shift, кликните по ярлычкам листов) и выполните «Найти и заменить». Но будьте осторожны: это может затронуть текстовые данные, где пробелы нужны (например, ФИО). Лучше обрабатывать только числовые столбцы.
Вопрос: Как отличить обычный пробел от неразрывного?
Ответ: Обычный пробел имеет код 32, неразрывный — 160. Визуально они одинаковы. Чтобы проверить, используйте формулу =КОДСИМВ(ПСТР(A1; ПОИСК(" "; A1); 1)). Если результат 160 — это неразрывный пробел.