Как в Excel поменять текст на число: от простых способов до автоматизации

Почему Excel воспринимает числа как текст и как это исправить

Вы скачали данные из , импортировали CSV-файл или скопировали таблицу с веб-сайта — и вдруг обнаружили, что числа в ячейках выровнены по левому краю, как текст? А при попытке просуммировать их Excel выдаёт ошибку #ЗНАЧ! или странные обозначения вроде 1.23E+12? Это классическая проблема, когда программа интерпретирует числовые значения как текстовые строки.

Причины такого поведения разнообразны: от неверного формата при импорте до скрытых непечатаемых символов (например, пробелов или апострофов). В 90% случаев проблема решается за 30 секунд стандартными средствами Excel, но иногда требуются более продвинутые методы. В этой статье разберём все актуальные способы конвертации — от ручного исправления до автоматизации через Power Query и VBA.

Важно понимать: текстовое число и числовое значение для Excel — это принципиально разные типы данных. Текстовое "100" нельзя использовать в формулах как 100, даже если визуально они идентичны. Далее вы узнаете, как обойти ограничения Excel при работе с большими наборами данных (10 000+ строк), где ручные методы неэффективны.

Способ 1: Исправление через «Текст по столбцам» (самый надёжный)

Этот метод работает даже с самыми «упрямыми» текстовыми числами, включая значения с ведущими апострофами или неразрывными пробелами. Подходит для Excel 2007–2023 и Microsoft 365.

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

  1. Выделите проблемный столбец (или диапазон ячеек).
  2. Перейдите на вкладку ДанныеТекст по столбцам.
  3. В первом окне мастера выберите С разделителямиДалее.
  4. Снимите все галочки в разделе «Разделители» → Далее.
  5. На шаге «Формат данных столбца» выберите Общий или ЧисловойГотово.

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

☑️ Проверка успешности конвертации

Выполнено: 0 / 1
⚠️ Внимание: Если в ячейках были скрытые символы (например, НПП — неразрывный пробел), метод «Текст по столбцам» заменит их на обычные пробелы. Это может исказить данные в текстах с фиксированной шириной (например, в выгрузках из банковских систем).

Способ 2: Умножение на 1 (быстрое решение для небольших таблиц)

Самый простой трюк — умножить текстовое число на 1. Excel автоматически преобразует строку в числовой формат. Метод работает в любой версии Excel, включая Excel Online и мобильные приложения.

Инструкция:

  1. В пустой ячейке (например, B1) введите 1.
  2. Скопируйте эту ячейку (Ctrl+C).
  3. Выделите диапазон с текстовыми числами.
  4. Щёлкните правой кнопкой → Специальная вставкаУмножитьОК.

Альтернативный вариант — использовать формулу:

=A1*1

Затем скопировать результаты и вставить их поверх исходных данных через Значения.

Исходные данные (текст) Формула Результат (число)
'100 =A2*1 100
"5 000" =A3*1 5000
1.23E+05 =A4*1 123000
⚠️ Внимание: Если в ячейках были не только числа, но и буквы (например, "100 руб"), умножение на 1 вернёт ошибку #ЗНАЧ!. В таких случаях предварительно очистите данные функцией =ЗНАЧЕН() или регулярными выражениями в Power Query.
📊 Какой способ конвертации вы используете чаще?
Текст по столбцам
Умножение на 1
Функция ЗНАЧЕН()
Power Query
Другой

Способ 3: Функция ЗНАЧЕН() для сложных случаев

Функция =ЗНАЧЕН(текст) (англ. VALUE) преобразует текстовое представление числа в числовой формат. Она полезна, когда:

  • 🔹 В ячейках смешаны числа и символы (например, "$1 000" или "50%").
  • 🔹 Данные импортированы из систем, где числа записаны с нестандартными разделителями (например, "1,234.56" вместо "1 234,56").
  • 🔹 Нужно обработать только часть строки (например, извлечь число из "Артикул: 12345").

Примеры использования:

=ЗНАЧЕН(ПОДСТАВИТЬ(A1; " "; ""))  // Удаляет пробелы из "1 000"

=ЗНАЧЕН(ЛЕВСИМВ(A1; НАЙТИ(" "; A1)-1)) // Извлекает число до пробела

Ограничения функции:

  • ❌ Не работает с числами в экспоненциальном формате (например, "1E+05").
  • ❌ Возвращает ошибку, если в строке нет распознаваемого числа.
  • ❌ Не обрабатывает отрицательные числа в скобках (например, "(100)").
Как обработать числа в скобках (убытки)

Используйте комбинацию функций:

=ЕСЛИ(НАЙТИ("("; A1); ЗНАЧЕН(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1; "("; "-"); ")"; "")); ЗНАЧЕН(A1))

Эта формула преобразует "(100)" в -100, а "200" оставляет без изменений.

Способ 4: Power Query — автоматическая очистка больших данных

Если вам нужно конвертировать тысячи строк с текстовыми числами, ручные методы неэффективны. В этом случае поможет Power Query (в Excel 2016+ и Microsoft 365 встроен по умолчанию).

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

  1. Выделите исходные данные → вкладка ДанныеИз таблицы/диапазона (или Получить данныеИз таблицы).
  2. В открывшемся редакторе Power Query выделите столбец с текстовыми числами.
  3. На вкладке Преобразовать выберите Тип данных: Заменить на → Число.
  4. Если появится предупреждение об ошибках, нажмите Заменить ошибки0 (или другое значение по умолчанию).
  5. Нажмите Закрыть и загрузить, чтобы вернуть данные в Excel.

Power Query автоматически:

  • 🔹 Удаляет ведущие/конечные пробелы.
  • 🔹 Преобразует разделители тысяч и дробных частей согласно региональным настройкам.
  • 🔹 Обрабатывает числа в скобках (убытки) как отрицательные значения.
⚠️ Внимание: При импорте данных из CSV или TXT сразу выбирайте правильную кодировку (обычно UTF-8 или Windows-1251). Неверная кодировка может привести к появлению «кракозябр» вместо чисел, и Power Query не сможет их распознать.

Способ 5: VBA-макрос для пакетной обработки

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

Sub ConvertTextToNumbers()

Dim rng As Range

Dim cell As Range

On Error Resume Next

Set rng = Selection.SpecialCells(xlCellTypeConstants, xlTextValues)

On Error GoTo 0

If rng Is Nothing Then Exit Sub

Application.ScreenUpdating = False

For Each cell In rng

If IsNumeric(Replace(cell.Value, " ", "")) Then

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

End If

Next cell

Application.ScreenUpdating = True

End Sub

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

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

Преимущества макроса:

  • 🔹 Обрабатывает тысячи ячеек за секунды.
  • 🔹 Удаляет пробелы из чисел автоматически.
  • 🔹 Работает даже с защищёнными листами (если у вас есть права на редактирование).
⚠️ Внимание: Макрос Val() не распознаёт разделители дробных частей (запятые или точки) согласно региональным настройкам. Если у вас числа вида "1,23" (где запятая — разделитель целой и дробной части), замените в коде Val() на CDbl() и добавьте замену разделителей:

cell.Value = CDbl(Replace(Replace(cell.Value, " ", ""), ","; Application.International(xlDecimalSeparator)))

Распространённые ошибки и как их избежать

Даже после конвертации данные могут вести себя некорректно. Разберём типичные проблемы и их решения:

Проблема Причина Решение
Числа отображаются как ######## Столбец слишком узкий для отображения Расширьте столбец или примените формат Экспоненциальный
После конвертации появились #ЗНАЧ! В ячейках были не только числа (например, "N/A") Используйте =ЕСЛИОШИБКА(ЗНАЧЕН(A1); 0)
Числа округляются (например, 1234567891.23E+08) Формат ячейки установлен как Общий с ограниченной точностью Примените формат Числовой без разделителей
Дробные числа преобразуются в даты (например, 1.201.фев) Excel интерпретирует числа с точкой как даты Перед конвертацией примените формат Текстовый, затем используйте =ЗНАЧЕН()

Особое внимание уделите региональным настройкам Excel. Если в вашей системе разделителем дробной части является запятая, а в импортируемых данных — точка (или наоборот), используйте функцию ПОДСТАВИТЬ:

=ЗНАЧЕН(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1; "."; ","); " "; ""))

FAQ: Ответы на частые вопросы

Почему после конвертации числа отображаются с запятыми вместо точек (или наоборот)?

Это связано с региональными настройками Excel. Чтобы исправить:

  1. Перейдите в Файл → Параметры → Дополнительно.
  2. В разделе «Параметры редактирования» снимите галочку «Использовать системные разделители».
  3. Укажите нужные разделители вручную (например, разделитель целой и дробной части — точка).

После этого повторите конвертацию.

Как преобразовать текстовые числа в столбце, если среди них есть пустые ячейки и ошибки?

Используйте комбинацию функций:

=ЕСЛИОШИБКА(ЕСЛИ(A1=""; ""; ЗНАЧЕН(ПОДСТАВИТЬ(A1; " "; ""))); 0)

Эта формула:

  • Пропускает пустые ячейки.
  • Преобразует текстовые числа.
  • Заменяет ошибки на 0 (или другой символ по вашему выбору).
Можно ли автоматически конвертировать текстовые числа при открытии файла?

Да, с помощью макроса Workbook_Open. Вставьте этот код в модуль ThisWorkbook:

Private Sub Workbook_Open()

Dim ws As Worksheet

Dim rng As Range

For Each ws In ThisWorkbook.Worksheets

On Error Resume Next

Set rng = ws.UsedRange.SpecialCells(xlCellTypeConstants, xlTextValues)

On Error GoTo 0

If Not rng Is Nothing Then

For Each cell In rng

If IsNumeric(Replace(cell.Value, " ", "")) Then

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

End If

Next cell

End If

Next ws

End Sub

⚠️ Предупреждение: Этот макрос будет запускаться при каждом открытии файла и может замедлить работу с большими таблицами.

Почему функция ЗНАЧЕН() не работает с числами в формате «1 000 000» (с пробелами)?

Функция ЗНАЧЕН() не распознаёт пробелы как разделители тысяч. Используйте:

=ЗНАЧЕН(ПОДСТАВИТЬ(A1; " "; ""))

Если в числе используются неразрывные пробелы (спецсимвол Char(160)), замените их на обычные:

=ЗНАЧЕН(ПОДСТАВИТЬ(A1; СИМВОЛ(160); ""))
Как конвертировать текстовые числа в Google Таблицах?

В Google Sheets используйте те же методы, что и в Excel, но с учётом особенностей:

  • 🔹 =VALUE(A1) — аналог ЗНАЧЕН().
  • 🔹 =ARRAYFORMULA(IFERROR(VALUE(SUBSTITUTE(A1:A100; " "; "")))) — для массовой обработки.
  • 🔹 В меню: Данные → Текст в столбцы (аналог «Текст по столбцам» в Excel).

Обратите внимание: в Google Таблицах региональные настройки влияют на разделители сильнее, чем в Excel. При необходимости измените их в Файл → Настройки → Общие.