Как в Excel оставить в ячейке только числа: полное руководство

Проблема смешанных данных в Excel: почему числа «загрязняются» текстом

Вы когда-нибудь сталкивались с ситуацией, когда в ячейке Excel хранятся одновременно и числа, и текст? Например, 100 кг, 50% скидка или Заказ №2026-156? Такие «гибридные» данные мешают сортировке, фильтрации и математических вычислениях. Excel воспринимает их как текст, а не как числа, что приводит к ошибкам в формулах типа #ЗНАЧ! или некорректным результатам в сводных таблицах.

Причины появления смешанных данных разнообразны: импорт из внешних источников (1С, CRM-систем, веб-скрапинг), ручной ввод с комментариями, автоматически сгенерированные отчёты, где числа дополнены единицами измерения. Даже копирование данных из PDF или Word часто приводит к «загрязнению» числовых значений посторонними символами. Решить эту проблему можно несколькими способами — от элементарных функций до сложных пользовательских скриптов.

В этой статье мы разберём 7 проверенных методов, как извлечь числа из ячеек Excel, сохранив при этом исходную структуру данных. Вы узнаете, какой способ подходит для одноразовой очистки, а какой лучше автоматизировать для регулярного использования. Особое внимание уделим нюансам работы с русскоязычными текстами, где числа могут быть записаны с пробелами в качестве разделителей тысяч (например, 1 000 000).

Способ 1: Функция ЗНАЧЕН — простейшее решение для чисел с валютами и единицами измерения

Если ваши данные имеют стандартный формат (например, 150 руб., 25%, 300 кг), где число всегда стоит в начале ячейки, на помощь придёт функция ЗНАЧЕН. Она преобразует текстовое представление числа в числовой формат, игнорируя все нечисловые символы после цифр.

Формула выглядит так:

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

Почему здесь две функции ПОДСТАВИТЬ? Первая удаляет пробелы (актуально для чисел типа 1 000 000), вторая заменяет запятые на точки — это важно, если ваш Excel настроен на русский формат дат, где запятая используется как разделитель целой и дробной части. Без такой замены функция ЗНАЧЕН вернёт ошибку.

  • Плюсы: работает без макросов, не требует дополнительных надстроек.
  • Минусы: не справится, если число находится в середине текста (например, Артикул T-500-2026).
  • ⚠️ Нюанс: в английской версии Excel функция называется VALUE.
⚠️ Внимание: Если в ячейке несколько чисел (например, 10x20x30 см), функция ЗНАЧЕН извлечёт только первое. Для таких случаев потребуются регулярные выражения или VBA.

Способ 2: Разделение текста по столбцам — когда числа спрятаны среди букв

Если числа «вкраплены» в текст (например, Партия 150 шт. от 10.05.2026), поможет инструмент «Текст по столбцам». Он позволяет разбить содержимое ячейки на части по заданному разделителю. Алгоритм действий:

  1. Выделите диапазон с данными.
  2. Перейдите на вкладку ДанныеТекст по столбцам.
  3. Выберите С разделителями → нажмите Далее.
  4. Укажите разделитель (пробел, запятая, точка с запятой) или выберите Другой и введите символ вручную.
  5. На последнем шаге выберите формат столбца Текстовый (чтобы избежать автоматического округления чисел).

После разделения числа окажутся в отдельных столбцах, которые можно скопировать или использовать в формулах. Этот метод особенно полезен для обработки логов, где числа перемешаны с текстом (например, Ошибка 404 в 12:30:45).

📊 Как часто вам приходится очищать данные в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда
Исходные данные Разделитель Результат в первом столбце Результат во втором столбце
Заказ 2026-156 на 5000 руб. Пробел Заказ 2026-156
Температура:23.5°C : Температура 23.5°C
10.05.2026;150;Отгружено ; 10.05.2026 150
⚠️ Внимание: Если в тексте есть несколько одинаковых разделителей подряд (например, Дата;;Время), Excel воспримет это как пустой столбец. Чтобы избежать «дыр» в данных, предварительно замените двойные разделители на одиночные с помощью НАЙТИ/ЗАМЕНИТЬ (Ctrl+H).

Способ 3: Формулы с ЛЕВСИМВ, ПРАВСИМВ и ПСТР — для извлечения чисел из фиксированных позиций

Когда числа в тексте расположены на строго определённых позициях (например, артикулы типа AB-12345-CD, где 12345 — номер), можно использовать функции работы с подстроками. Комбинация ПСТР (или MID в английской версии) с НАЙТИ позволяет вырезать только цифровую часть.

Пример формулы для извлечения числа из строки Партия-A123-B45 (где A123 — артикул, а B45 — количество):

=ЗНАЧЕН(ПСТР(A1;НАЙТИ("-";A1)+1;НАЙТИ("-";A1;НАЙТИ("-";A1)+1)-НАЙТИ("-";A1)-1))

Разберём её пошагово:

  1. НАЙТИ("-";A1) — находит позицию первого дефиса.
  2. НАЙТИ("-";A1;НАЙТИ("-";A1)+1) — ищет второй дефис.
  3. ПСТР вырезает текст между первым и вторым дефисами.
  4. ЗНАЧЕН преобразует результат в число.

Для более сложных шаблонов (например, 10 кг x 5 шт.) потребуется комбинировать несколько функций или использовать регулярные выражения через VBA.

Убедитесь, что числа всегда находятся на одних и тех же позициях|Проверьте, нет ли в данных лишних пробелов|Сохраните резервную копию файла перед массовыми изменениями|Протестируйте формулу на 2-3 примерах-->

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

Если вам нужно обработать тысячи строк с неструктурированными данными, ручные методы окажутся слишком медленными. Здесь на помощь придёт Power Query — инструмент ETL (Extract, Transform, Load), встроенный в Excel 2016 и новее. Он позволяет создавать повторяемые процессы очистки, которые можно запускать одним кликом.

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

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

Power Query сохраняет историю преобразований, поэтому при обновлении исходных данных достаточно кликнуть «Обновить», и все шаги очистки применятся автоматически. Это идеальное решение для ежемесячных отчётов, где структура данных повторяется.

  • 🔄 Преимущество: обработка миллионов строк без замедления Excel.
  • 📊 Бонус: можно объединять данные из нескольких источников (Excel, CSV, SQL, веб).
  • ⚙️ Нюанс: в Excel 2013 Power Query устанавливается как надстройка (Microsoft Power Query for Excel).

Способ 5: Регулярные выражения через VBA — для сложных шаблонов

Когда числа «спрятаны» в тексте без чёткой структуры (например, Цена: от 1 000 до 2 500 рублей за шт.), на помощь приходят регулярные выражения (regex). В Excel их можно использовать через макросы на языке VBA.

Пример кода для извлечения всех чисел из ячейки (включая дробные):

Function ExtractNumbers(rng As Range) As String

Dim regex As Object

Set regex = CreateObject("VBScript.RegExp")

With regex

.Pattern = "[\d]+[.,]?[\d]*" ' Шаблон для целых и дробных чисел

.Global = True

End With

If regex.Test(rng.Value) Then

ExtractNumbers = regex.Execute(rng.Value)(0)

Else

ExtractNumbers = ""

End If

End Function

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

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (InsertModule).
  3. Вернитесь в Excel и введите в ячейке формулу =ExtractNumbers(A1).

Для извлечения всех чисел из текста (например, чтобы получить массив 1000 и 2500 из примера выше) модифицируйте функцию:

Function ExtractAllNumbers(rng As Range) As String

Dim regex As Object, matches, i As Integer

Set regex = CreateObject("VBScript.RegExp")

With regex

.Pattern = "[\d]+[.,]?[\d]*"

.Global = True

End With

If regex.Test(rng.Value) Then

Set matches = regex.Execute(rng.Value)

For i = 0 To matches.Count - 1

ExtractAllNumbers = ExtractAllNumbers & matches(i) & ", "

Next i

ExtractAllNumbers = Left(ExtractAllNumbers, Len(ExtractAllNumbers) - 2)

End If

End Function

⚠️ Внимание: Регулярные выражения чувствительны к формату чисел. Если в ваших данных используются неразрывные пробелы (например, 1 000 вместо 1 000), добавьте в шаблон символ \s для их учёта: .Pattern = "[\d]+[\s.,]?[\d]*".
Как проверить, есть ли в тексте неразрывные пробелы?

Включите отображение непечатаемых символов в Word (кнопка ¶) или в Excel используйте формулу =КОДСИМВ(ПСТР(A1;1;1)) — неразрывный пробел имеет код 160 (обычный пробел — 32).

Способ 6: Надстройка «Kutools for Excel» — плагин для ленивых

Если вам нужно быстро и без формул очистить данные, стоит рассмотреть платную надстройку Kutools for Excel. Она добавляет в Excel сотни дополнительных функций, включая инструмент Extract Numbers («Извлечь числа»).

Как это работает:

  1. Установите надстройку (есть бесплатная пробная версия).
  2. Выделите диапазон ячеек.
  3. На вкладке Kutools выберите TextExtract Numbers.
  4. Укажите, нужно ли извлекать все числа или только первое/последнее в ячейке.

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

  • 🔥 Обрабатывает несколько столбцов одновременно.
  • 📁 Сохраняет исходные данные (создаёт копию с очищенными значениями).
  • 🔄 Поддерживает пакетную обработку нескольких файлов.

Минус один — надстройка платная (от $39 за лицензию). Однако для разовых задач можно воспользоваться пробной версией.

Способ 7: Онлайн-сервисы — когда Excel недоступен

Если у вас нет доступа к Excel (например, вы работаете на Mac или Linux, где Excel может быть не установлен), можно воспользоваться онлайн-инструментами для очистки данных. Некоторые из них:

  • 🌐 TextFixer — извлекает числа из текста, поддерживает загрузку файлов CSV.
  • 📊 ConvertCSV — позволяет редактировать CSV-файлы прямо в браузере, включая удаление нечисловых символов.
  • 🔢 Regex101 — тестер регулярных выражений с подробным разбором шаблонов (полезно для сложных случаев).

Предупреждение: не загружайте конфиденциальные данные на сторонние сервисы! Для работы с финансовой или персональной информацией используйте только офлайн-методы (Excel, VBA, Power Query).

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

  1. Скопируйте данные из Excel в текстовое поле на сайте.
  2. Выберите опцию Extract Numbers.
  3. Скопируйте результат обратно в Excel.

FAQ: Частые вопросы об очистке чисел в Excel

Можно ли извлечь числа из ячейки, не используя формулы?

Да! Способы без формул:

  • Инструмент Текст по столбцам (разделён по разделителю).
  • Функция Найти и заменить (Ctrl+H) — замените все нечисловые символы на пустоту.
  • Надстройка Kutools (платно) или Power Query (бесплатно в Excel 2016+).
Почему функция ЗНАЧЕН возвращает ошибку #ЗНАЧ!?

Причины и решения:

  • 🔹 В тексте нет чисел в начале: функция работает только если число стоит первым. Используйте ПОИСК + ПСТР для извлечения чисел из середины текста.
  • 🔹 Неправильный разделитель дробной части: в русскоязычном Excel используйте запятую (23,5), в англоязычном — точку (23.5). Замените символы перед применением ЗНАЧЕН.
  • 🔹 Пробелы как разделители тысяч: удалите пробелы функцией ПОДСТАВИТЬ(A1;" "; "").
Как автоматизировать очистку данных при каждом открытии файла?

Используйте макросы VBA или Power Query:

  1. VBA: запишите макрос, который запускается при открытии книги (событие Workbook_Open). Пример кода:
    Private Sub Workbook_Open()
    

    Sheets("Лист1").Range("A1:A100").Value = _

    Application.WorksheetFunction.ExtractNumbers(Sheets("Лист1").Range("A1:A100"))

    End Sub

    Примечание: потребуется предварительно добавить функцию ExtractNumbers (см. Способ 5).
  2. Power Query: сохраните запрос и настройте автоматическое обновление при открытии файла (Свойства связиОбновить при открытии).
Что делать, если числа записаны словами (например, «сто двадцать пять»)?

Для преобразования текстового представления чисел («двести пятьдесят»250) потребуются:

  • 📖 Словарь замен: создайте таблицу соответствий («ноль»=0, «один»=1, ..., «тысяча»=1000) и используйте ПОИСКПОЗ + ВПР.
  • 🤖 VBA-скрипт: напишите функцию, которая разбивает текст на слова и суммирует их значения. Пример кода можно найти на MrExcel Forum.
  • 🌍 Онлайн-сервисы: некоторые инструменты (например, TextMagic) поддерживают конвертацию слов в числа для английского языка.

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

Как очистить данные в Google Таблицах?

В Google Sheets работают те же принципы, но с поправками:

  • 🔹 Аналог ЗНАЧЕН=VALUE (но не поддерживает пробелы как разделители тысяч).
  • 🔹 Для регулярных выражений используйте =REGEXEXTRACT:
    =REGEXEXTRACT(A1; "\d+[\.,]?\d*")
  • 🔹 Инструмент Разделить текст на столбцы находится в меню Данные.
  • 🔹 Для автоматизации используйте Google Apps Script (аналог VBA).