Вы когда-нибудь сталкивались с ситуацией, когда Excel упрямо воспринимает числа как текст? Например, вместо суммы в 1000 рублей вы видите выравненное по левому краю «1000», а при попытке сложить ячейки получаете ошибку #ЗНАЧ!. Или хуже — данные импортировались из внешнего источника, и все цифры стали «неправильными»: с апострофами, пробелами или даже невидимыми символами.
Эта проблема знакома каждому, кто работает с данными из 1С, CRM-систем, CSV-файлов или просто копирует таблицы из веб-страниц. В 90% случаев Excel автоматически преобразует текст в числа, но когда этого не происходит — пользователи теряют часы на ручную правку. Между тем, существует как минимум 5 способов конвертации текста в числа, и мы разберём каждый с нюансами и исключениями.
В этой статье вы найдёте не только стандартные методы вроде «умножить на 1», но и продвинутые техники с Power Query, макросами VBA и даже обработкой непечатаемых символов. А ещё — таблицу совместимости методов с разными версиями Excel (включая Excel Online и Excel для Mac). Начнём с самого простого и дойдём до решений для сложных случаев, когда числа «спрятаны» внутри текста или разделены разделителями.
1. Базовые методы: когда Excel «не видит» числа
Если ваши данные выглядят как числа, но ведут себя как текст (например, выравниваются по левому краю или отображаются с зелёным треугольником в углу), начните с этих проверенных способов. Они работают в 80% случаев и не требуют знания формул.
Самый известный трюк — умножить ячейку на 1. Это заставляет Excel пересчитать значение и автоматически преобразовать текст в число. Делается это так:
- В пустой ячейке (например,
B1) введите цифру1. - Скопируйте её (
Ctrl+C). - Выделите диапазон с «текстовыми» числами.
- Нажмите
Правая кнопка → Специальная вставка → Умножить.
Альтернативный вариант — использовать маркер заполнения:
- В пустой ячейке рядом с данными введите
=A1*1(гдеA1— первая ячейка с текстом). - Нажмите
Enter, затем потяните маркер заполнения вниз. - Скопируйте полученные числа и вставьте их поверх оригинальных данных через
Специальная вставка → Значения.
☑️ Проверка перед конвертацией
Ещё один малоизвестный приём — двойной щелчок по ячейке. Иногда достаточно кликнуть дважды по проблемной ячейке и нажать Enter. Excel пересчитает значение и может автоматически преобразовать его в число. Этот метод срабатывает, если текстовое число не содержит посторонних символов (например, «1000р» или «5,2%»).
2. Функции Excel для преобразования текста в числа
Когда базовые методы не работают (например, если числа смешаны с текстом или содержат разделители), на помощь приходят функции. Вот самые эффективные:
ЗНАЧЕН() — самая прямая функция для конвертации. Она преобразует текст, отформатированный как число, в настоящее числовое значение. Пример:
=ЗНАЧЕН(A1)
Но у неё есть ограничения:
- 🚫 Не работает, если в тексте есть посторонние символы (например, «$100» или «5 кг»).
- 🚫 Вернёт ошибку
#ЗНАЧ!, если ячейка пустая или содержит буквы. - ✅ Подходит для чисел с десятичными разделителями (например, «3,14» →
3.14).
Для сложных случаев используйте комбинацию функций:
=ЗНАЧЕН(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1; " "; ""); ","; "."))
Эта формула удаляет пробелы и заменяет запятые на точки (актуально для европейского формата чисел).
ЧИСТР() — удаляет все непечатаемые символы из текста. Полезно, если данные импортированы из веб или содержат скрытые разрывы строк:
=ЗНАЧЕН(ЧИСТР(A1))
3. Обработка чисел внутри текста (извлечение)
Частая проблема: в ячейке смешан текст с числами (например, «Артикул: 12345» или «Цена 1000 руб.»). Здесь нужны функции для извлечения числовых значений.
Для простых случаев подойдёт комбинация ПСТР() и НАЙТИ():
=ЗНАЧЕН(ПСТР(A1; НАЙТИ(":"; A1)+1; 255))
Эта формула извлечёт всё, что идёт после двоеточия в тексте «Артикул: 12345».
Для более сложных шаблонов используйте регулярные выражения через Power Query (см. раздел 5) или VBA. Например, чтобы извлечь первое число из строки «Товар 5шт по 200руб», применяйте:
=МИН(ЕСЛИОШИБКА(ЗНАЧЕН(ПСТР(0&A1; СТРОКА(ДВССЫЛ("1:99")); 255)); ""))
Это формула массива — вводите её через Функция ЗНАЧЕН() игнорирует символы валют ($, €, ₽), но если они прилегают к числу без пробела (например, "$100"), Excel воспринимает это как текст. Решение: сначала удалите символы валют функцией ПОДСТАВИТЬ().Ctrl+Shift+Enter в старых версиях Excel.
Почему ЗНАЧЕН() не работает с валютами?
4. Power Query: массовая конвертация без формул
Power Query (или Get & Transform в новых версиях Excel) — самый мощный инструмент для очистки данных. Он справится даже с тысячами строк, где числа спрятаны в тексте или разделены нестандартными разделителями.
Пошаговая инструкция:
- Выделите диапазон данных и нажмите
Данные → Из таблицы/диапазона(в Excel 2016+). - В открывшемся редакторе Power Query выделите столбец с текстовыми числами.
- Перейдите на вкладку
Преобразоватьи выберите:- 🔢
Тип данных: Число— для простых случаев. - 🔢
Заменить значения→ удалите пробелы, символы валют. - 🔢
Разделить столбец → По разделителю— если числа смешаны с текстом.
- 🔢
Закрыть и загрузить.Преимущества Power Query:
- ✅ Обрабатывает миллионы строк без замедления.
- ✅ Сохраняет шаги очистки — при обновлении данных не нужно повторять действия.
- ✅ Поддерживает регулярные выражения для сложных замен.
5. Макросы VBA для автоматизации
Если вам регулярно приходится конвертировать текст в числа, имеет смысл написать простой макрос. Вот универсальный код, который обработает выделенный диапазон:
Sub TextToNumber()
Dim rng As Range
Dim cell As Range
Set rng = Selection
For Each cell In rng
If IsNumeric(Replace(Replace(cell.Value, " ", ""), ",", ".")) Then
cell.Value = Val(Replace(Replace(cell.Value, " ", ""), ",", "."))
End If
Next cell
End Sub
Этот макрос:
- Удаляет все пробелы из ячеек.
- Заменяет запятые на точки (для европейского формата).
- Применяет функцию
Val(), которая игнорирует нечисловые символы в начале строки.
Чтобы использовать макрос:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Выделите диапазон с данными и запустите макрос (
F5).
6. Распространённые ошибки и их решения
Даже опытные пользователи сталкиваются с неожиданными проблемами при конвертации текста в числа. Вот самые частые ошибки и способы их исправления:
| Ошибка | Причина | Решение |
|---|---|---|
#ЗНАЧ! в функции ЗНАЧЕН() |
Ячейка содержит буквы или символы, несовместимые с числами | Очистите данные функцией ЧИСТР() или удалите лишние символы вручную |
| Числа отображаются как даты (например, «1-мар» вместо «1») | Excel автоматически преобразует числа в формат даты | Перед конвертацией установите формат ячейки Текстовый, затем верните Общий |
| Числа с запятыми становятся датами (например, «3,14» → «14-мар») | Региональные настройки Excel воспринимают запятую как разделитель даты | Замените запятые на точки или используйте формулу =ПОДСТАВИТЬ(A1; ","; ".") |
| После конвертации числа округляются (например, «1.2345» → «1,23») | Формат ячейки ограничивает количество десятичных знаков | Установите формат Числовой с нужным количеством знаков после запятой |
Критическая ошибка: если после конвертации числа становятся отрицательными или умножаются на 100, проверьте региональные настройки Windows. В некоторых локалях Excel использует запятую как разделитель тысяч, а точку — как десятичный разделитель, что приводит к искажению данных.
Ещё одна ловушка — невидимые символы (например, неразрывные пробелы или символы табуляции). Они не видны в ячейке, но мешают конвертации. Чтобы их обнаружить, используйте функцию КОДСИМВ():
=КОДСИМВ(ЛЕВСИМВ(A1))
Если результат — 160, в ячейке неразрывный пробел. Удалите его функцией ПОДСТАВИТЬ(A1; СИМВОЛ(160); "").
7. Специфика разных версий Excel
Не все методы работают одинаково в Excel 2010, Excel 2019 и Excel Online. Вот таблица совместимости:
| Метод | Excel 2010-2013 | Excel 2016-2021 | Excel Online | Excel для Mac |
|---|---|---|---|---|
| Умножение на 1 | ✅ Да | ✅ Да | ✅ Да | ✅ Да |
Функция ЗНАЧЕН() |
✅ Да | ✅ Да | ✅ Да | ✅ Да |
| Power Query | ❌ Нет (требуется надстройка) | ✅ Да (встроено) | ✅ Да | ✅ Да (с 2016 года) |
| Макросы VBA | ✅ Да | ✅ Да | ❌ Нет | ✅ Да (с ограничениями) |
Функция ЧИСТР() |
✅ Да | ✅ Да | ✅ Да | ✅ Да |
В Excel Online отсутствует поддержка VBA, но зато есть Power Query (начиная с 2020 года). Если вы работаете в веб-версии, используйте специальную вставку или формулы.
В Excel для Mac до 2016 года может не работать Power Query, а макросы требуют дополнительных настроек безопасности. Обновите программу до последней версии, если сталкиваетесь с проблемами.
FAQ: Частые вопросы по конвертации текста в числа
Почему после конвертации числа отображаются как ########?
Это означает, что столбец слишком узкий для отображения числа. Растяните его вручную или нажмите Формат → Автоподбор ширины столбца. Также проверьте, не установлен ли формат даты — иногда Excel ошибочно преобразует большие числа (например, «12345678») в даты, что приводит к подобному эффекту.
Как преобразовать текст в числа, если в ячейке несколько чисел (например, «10 20 30»)?
Используйте Power Query с разделением по пробелу или напишите макрос на VBA, который извлечёт числа по регулярному выражению. Пример кода для извлечения всех чисел из строки:
Function ExtractNumbers(rng As Range) As String
Dim str As String, num As String
Dim i As Integer, char As String
str = rng.Value
For i = 1 To Len(str)
char = Mid(str, i, 1)
If IsNumeric(char) Or char = "." Or char = "," Then
num = num & char
ElseIf num <> "" Then
ExtractNumbers = ExtractNumbers & num & " "
num = ""
End If
Next i
If num <> "" Then ExtractNumbers = ExtractNumbers & num
End Function
Эту функцию можно вызвать как =ExtractNumbers(A1).
Можно ли автоматически конвертировать текст в числа при импорте данных из CSV?
Да, при импорте через Данные → Из текстового/CSV-файла выберите столбец с числами и установите тип данных Числовой ещё на этапе предварительного просмотра. Если данные уже импортированы, используйте Power Query для массового преобразования.
Почему функция ЗНАЧЕН() не работает с числами в экспоненциальной записи (например, «1e+05»)?
Функция ЗНАЧЕН() должна корректно обрабатывать экспоненциальную запись (например, «1e+05» → 100000). Если этого не происходит, проверьте:
- Нет ли пробелов или невидимых символов в ячейке.
- Не установлен ли текстовый формат ячейки (измените на
Общий). - Не является ли значение результатом ошибки при импорте (попробуйте повторить импорт с другими настройками).
Как преобразовать текст в числа в Google Таблицах?
В Google Sheets работают те же принципы, но есть нюансы:
- Функция
ЗНАЧЕН()называется=VALUE(). - Для массовой конвертации используйте
Формат → Числа → Автоматический. - Аналог Power Query — надстройка Google Apps Script.
Чтобы удалить апострофы (которые часто добавляются при копировании), используйте функцию =ARRAYFORMULA(IF(LEFT(A1:A)="'"; VALUE(RIGHT(A1:A; LEN(A1:A)-1)); VALUE(A1:A))).