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

Работа с неструктурированными данными в Microsoft Excel часто превращается в головную боль, когда цифры перемешаны с буквами, символами или пробелами. Представьте: у вас список артикулов вида «Товар-123АБВ», телефонные номера в формате «+7(999)123-45-67» или финансовые отчёты, где суммы указаны вместе с валютами («$1 500»). Вручную выделять числа из сотен строк — неблагодарный труд. К счастью, Excel предлагает минимум 7 способов автоматизировать эту задачу, и мы разберём каждый из них — от элементарных до продвинутых.

Эта статья не просто перечислит методы, а поможет выбрать оптимальный подход в зависимости от вашей ситуации. Например, если вам нужно сохранить ведущие нули (как в номерах документов), стандартные функции Excel их обрежут — но мы покажем обходные пути. Или когда цифры разбросаны по тексту хаотично (например, «Заказ 5 шт. по 1000 руб/ед.»), и требуется извлечь все числовые значения отдельно. Готовьтесь к практическим примерам с формулами, которые можно скопировать и адаптировать под свои данные!

1. Базовый способ: функция ЗНАЧЕН для простых случаев

Начнём с самого очевидного решения, которое работает, когда цифры в ячейке стоят в начале строки и за ними следуют нечисловые символы. Например: «123кг», «45.6%», «2026 год». Функция ЗНАЧЕН (англ. VALUE) преобразует текстовое представление числа в числовой формат, игнорируя всё, что идёт после цифр.

Формула простая:

=ЗНАЧЕН(ЛЕВСИМВ(A1;НАЙТИ(МИН(ЕОШИБКА(НАЙТИ({0;1;2;3;4;5;6;7;8;9};A1&"0123456789"))-1;ДЛСТР(A1)))))

Но есть нюансы:

  • 🔢 Работает только если цифры идут первыми в ячейке. Для «Вес: 123 кг» вернёт ошибку.
  • ❌ Обрезает ведущие нули (из «00123» сделает «123»).
  • 📉 Не извлекает дробные числа, если разделитель — запятая в тексте, а в настройках Excel точка.
⚠️ Внимание: Если после применения ЗНАЧЕН получаете ошибку #ЗНАЧ!, проверьте региональные настройки Excel. В русскоязычной версии разделителем целой и дробной части должна быть запятая, а не точка.

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

Исходные данные (A1)ФормулаРезультат
150р.=ЗНАЧЕН(A1)150
3.14м=ЗНАЧЕН(A1)3,14
Температура 25°C=ЗНАЧЕН(A1)#ЗНАЧ!

2. Продвинутая формула: извлечение всех цифр из текста

Когда цифры разбросаны по тексту (например, «Артикул T-45-AB-001»), стандартные функции бессильны. Здесь поможет массивная формула, которая последовательно проверяет каждый символ и возвращает только цифры:

=ТЕКСТСОЕДИНИТЬ(--;

ЕСЛИОШИБКА(

--НЕ(ЕОШИБКА(ЗНАЧЕН(СРЕДСИМВ(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1))));

"";

СРЕДСИМВ(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)

)

)

Разберём, как это работает:

  1. Функция СРЕДСИМВ извлекает каждый символ по очереди.
  2. ЗНАЧЕН пытается преобразовать символ в число. Если удаётся — это цифра.
  3. ТЕКСТСОЕДИНИТЬ собирает все цифры в одну строку.

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

  • 🔄 Извлекает все цифры из текста, независимо от их позиции.
  • 📌 Сохраняет ведущие нули (в отличие от ЗНАЧЕН).
  • 🔢 Работает с дробными числами, если разделитель — запятая.
📊 Какой версии Excel вы пользуетесь?
Excel 2016 или старше
Excel 2019
Excel 365 (подписка)
Excel для Mac
Другая версия
⚠️ Внимание: В Excel 2019 и старше эту формулу нужно вводить как массивную (нажать Ctrl+Shift+Enter после ввода). В Excel 365 она работает автоматически.

Примеры результатов:

Исходный текстРезультат
Заказ №45-А от 01.05.20264501052026
Телефон: +7(999)123-45-6779991234567
Код товара: AB-0012-XY0012

3. Power Query: инструмент для сложных преобразований

Если вам нужно обработать тысячи строк или данные обновляются регулярно, Power Query (вкладка «Данные» → «Получить данные») станет спасением. Этот инструмент позволяет создавать многоступенчатые правила очистки без формул.

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

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

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

  • 🔄 Обрабатывает миллионы строк без замедления.
  • 🔄 Сохраняет шаги преобразования для повторного использования.
  • 📊 Позволяет объединять извлечение цифр с другими операциями (фильтрация, сортировка).

Выделить исходный диапазон|Открыть Power Query (Данные → Получить данные)|Выбрать столбец для преобразования|Применить извлечение текста по шаблону|Проверьте предварительный просмотр|Закрыть и загрузить результаты-->

Пример регулярного выражения для извлечения всех цифр:

\d+

Оно найдёт все последовательности цифр (например, в «А1Б2В3» вернёт «1», «2», «3» в отдельных строках). Чтобы объединить их в одно число, используйте шаг Группировка.

4. VBA-макрос: автоматизация для повторяющихся задач

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

Sub ExtractNumbers()

Dim rng As Range, cell As Range

Dim output As String

Dim i As Integer

Set rng = Selection

Application.ScreenUpdating = False

For Each cell In rng

output = ""

For i = 1 To Len(cell.Value)

If IsNumeric(Mid(cell.Value, i, 1)) Then

output = output & Mid(cell.Value, i, 1)

End If

Next i

cell.Offset(0, 1).Value = output

Next cell

Application.ScreenUpdating = True

MsgBox "Готово! Числа извлечены в соседний столбец.", vbInformation

End Sub

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

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

Особенности макроса:

  • 🔄 Обрабатывает любые символы, оставляя только цифры.
  • 📌 Сохраняет ведущие нули.
  • ⚡ Работает в 10–100 раз быстрее формул на больших объёмах данных.
⚠️ Внимание: Перед запуском макроса сохраните файл в формате .xlsm (с поддержкой макросов), иначе код не выполнится. Также проверьте настройки безопасности Excel: Файл → Параметры → Центр управления безопасностью → Параметры центра → Включить все макросы (временный режим для тестирования).

5. Регулярные выражения (Regex) в Excel 365

В Excel 365 появилась поддержка регулярных выражений через функции ТЕКСТРАЗД и ТЕКСТДО. Это революционный способ работы с текстом, который ранее был доступен только через VBA или Power Query.

Пример формулы для извлечения всех цифр:

=ТЕКСТСОЕДИНИТЬ( "";

ЕСЛИОШИБКА(

--ТЕКСТРАЗД(

ПОДСТАВИТЬ(A1; " "; "");

",";

СТРОКА(ДВССЫЛ("1:" & ДЛСТР(ПОДСТАВИТЬ(A1; " "; "")) - ДЛСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1; " "; ""); "[0-9]"; "")) + 1))

);

""

)

)

Более простой вариант (если цифры идут подряд):

=--ТЕКСТДО(A1; "[^0-9]"; ; 1; ЛОЖЬ; 1)

Расшифровка параметров:

  • [^0-9] — шаблон «любой символ, кроме цифр».
  • ЛОЖЬ — регистрозависимость (здесь не важна).
  • 1 — возвращать первое совпадение.
=МИН(ЕСЛИОШИБКА(ЗНАЧЕН(ТЕКСТРАЗД(A1; " ")); ""))

Это разобьёт текст по пробелам и попробует преобразовать каждый фрагмент в число, вернув минимальное (первое найденное).-->

6. Специальные случаи: телефоны, даты, денежные суммы

Некоторые форматы требуют особого подхода. Разберём типичные сценарии:

6.1. Номера телефонов

Для извлечения чисел из форматов «+7(999)123-45-67» или «8-800-555-35-35» используйте:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1; "+"; ""); "("; ""); ")"; ""); "-"; ""); " "; "")

6.2. Денежные суммы

Для «$1 500,25» или «1000 руб.»:

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

6.3. Даты в тексте

Для «Заказ от 15.05.2026»:

=ДАТАЗНАЧ(ТЕКСТДО(A1; " "; 2))

В этих случаях комбинируйте ПОДСТАВИТЬ (удаляет символы) с ЗНАЧЕН или ДАТАЗНАЧ (преобразует в число/дату).

Почему не работает ПОДСТАВИТЬ с кириллицей?

Функция ПОДСТАВИТЬ чувствительна к регистру и кодировке. Если заменяете русские символы (например, «руб.»), убедитесь, что:

1. В формуле используете точные кавычки (прямые, а не „ёлочки“).

2. Шрифт в ячейке поддерживает кириллицу (проверьте в Главная → Шрифт).

3. В настройках Windows включена поддержка русского языка (особенно актуально для Excel на английской системе).

7. Ошибки и их решения

Даже с правильными формулами можно столкнуться с проблемами. Рассмотрим типичные ошибки и способы их исправления:

ОшибкаПричинаРешение
#ЗНАЧ! в ЗНАЧЕНТекст не начинается с цифр или содержит недопустимые символы (например, буквы в середине числа).Используйте формулу из раздела 2 или ПОДСТАВИТЬ для очистки данных.
Ведущие нули пропадаютExcel автоматически обрезает нули в числовых форматах.Преобразуйте результат в текст (=ТЕКСТ(формула; "0")) или используйте апостроф перед числом.
Формула массива не работаетВ Excel 2019 и старше забыли нажать Ctrl+Shift+Enter.Выделите ячейку с формулой и нажмите комбинацию клавиш.
Макрос не запускаетсяФайл сохранён в формате .xlsx без поддержки макросов.Сохраните как .xlsm и проверьте настройки безопасности макросов.

1. Скопировать данные в Блокнот и сохранить как ANSI, затем импортировать обратно.

2. Использовать функцию =КОДСИМВ(СИМВОЛ(код_символа)) для диагностики.-->

FAQ: Частые вопросы

Можно ли извлечь цифры без формул, вручную?

Да, но это неэффективно для больших объёмов. Способы:

  1. Выделите ячейку → Главная → Текст по столбцам → выберите разделитель (например, пробел) и пропустите ненужные столбцы.
  2. Используйте Найти и заменить (Ctrl+H), чтобы удалить все нечисловые символы (заменить на ничего).

Для 10–20 строк подойдёт, для сотен — лучше автоматизировать.

Как извлечь только первое число из текста?

Используйте комбинацию ТЕКСТРАЗД и ЗНАЧЕН:

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

Эта формула заменяет пробелы на запятые, разбивает текст и берёт первый числовой фрагмент.

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

Excel автоматически преобразует числа в формат даты, если они похожи на неё (например, «01.05» становится «1-май»). Решения:

  • Перед вводом формулы отформатируйте ячейку как Текстовый.
  • Добавьте апостроф перед числом: '=ваша_формула.
  • Используйте =ТЕКСТ(формула; "0") для принудительного текстового формата.
Как извлечь цифры из ячеек с ошибками (#Н/Д, #ЗНАЧ!)?

Оберните формулу в ЕСЛИОШИБКА:

=ЕСЛИОШИБКА(ваша_формула; "")

Для игнорирования ошибок в исходных данных используйте:

=ЕСЛИ(ЕОШИБКА(A1); ""; ваша_формула)
Можно ли извлечь цифры из защищённого листа?

Да, но с ограничениями:

  • Формулы будут работать, если они были введены до защиты листа.
  • Макросы не выполнятся, если защита включает блокировку VBA (Обзор → Защитить лист → Разрешить редактирование объектов должен быть включён).
  • Power Query обходит защиту, так как работает на уровне импорта данных.

Если лист защищён паролем, который вы не знаете, извлечь данные можно только через копирование в новый файл.