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

Работа с неструктурированными данными в Microsoft Excel часто превращается в головную боль: номера телефонов с дефисами, артикулы с буквами, цены с валютами — всё это мешает анализу. Основная проблема: как быстро извлечь только цифры, удалив лишние символы? Например, из строки «А123Б45В6» нужно получить «123456», а из «Цена: 1 500 руб.»«1500».

В этой статье вы найдёте 7 способов очистки ячеек — от простых формул до автоматизации через VBA. Мы разберём нюансы каждого метода, включая обработку отрицательных чисел, дробей и больших массивов данных. Спойлер: для одноразовых задач хватит стандартных функций, а для регулярной работы лучше настроить макрос.

Если вы работаете с данными из , выгрузками с сайтов или сканами документов, где цифры «замусорены» текстом — эта инструкция сэкономит часы ручного труда. Важно: некоторые методы изменяют исходные данные безвозвратно, поэтому всегда дублируйте таблицу перед очисткой.

1. Способ: Функция ПОИСКПОЗ + ПОДСТАВИТЬ (для простых случаев)

Этот метод подходит, если в ячейке фиксированный набор символов, которые нужно удалить. Например, из строки «Код: 789-45-12» требуется извлечь «7894512». Здесь мы заменим все нецифровые символы на пустоту.

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

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"-";"");"Код: ";"");" "; "")
Как это работает:
  1. Вложенные ПОДСТАВИТЬ последовательно удаляют дефисы ("-"), текст «Код: » и пробелы.
  2. Результат — чистое число, которое можно преобразовать в числовой формат.

Ограничение: если в ячейке есть буквы без пробелов (например, «А1Б2В3»), этот способ не сработает — он удаляет только указанные символы. Для таких случаев нужен другой подход.

📊 Как часто вам приходится очищать данные в Excel?
Ежедневно
Раз в неделю
Редко
Никогда

2. Способ: Формула с регулярными выражениями (Excel 365 и 2021)

В новых версиях Excel появилась функция ТЕКСТПОСЛЕ, которая поддерживает регулярные выражения. Это революционный способ для извлечения чисел из любого текста. Формула:

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

Разбор формулы:

  • 🔍 ПОИСК({0;1;...;9};...) — ищет позиции всех цифр в строке.
  • 📌 ПОДСТРОКА — извлекает каждый найденный символ.
  • 🔄 ТЕКССОЕДИНИТ — объединяет все цифры в одну строку.
  • 🔢 Двойной унарный минус (--) — преобразует результат в число.

Этот метод универсален: он извлечёт цифры из любой строки, включая «Телефон: +7(912)345-67-89»«79123456789». Однако в Excel 2019 и старше функция не работает — потребуется альтернатива.

3. Способ: Power Query (для больших таблиц)

Power Query — это инструмент Excel для преобразования данных, который справится с очисткой миллионов строк без формул. Алгоритм действий:

  1. Выделите исходный диапазон → Данные → Из таблицы/диапазонаExcel 2016+).
  2. В открывшемся редакторе Power Query выберите столбец → Преобразовать → Заменить значения.
  3. В поле «Найти» введите регулярное выражение [^0-9] (удаляет всё, кроме цифр).
  4. Нажмите Закрыть и загрузить.

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

  • ⚡ Обрабатывает гигабайты данных без тормозов.
  • 🔄 Можно сохранить шаги очистки и повторять их автоматически.
  • 📊 Поддерживает предварительный просмотр изменений.

Критическая деталь: регулярные выражения в Power Query чувствительны к регистру. Чтобы удалить и заглавные буквы, используйте [^0-9a-zA-Z] (но это оставит и латиницу).

Создать копию исходной таблицы|Проверить кодировку текста (UTF-8)|Удалить пустые строки|Сохранить шаги преобразования-->

4. Способ: Макрос VBA (для автоматизации)

Если вам приходится очищать данные ежедневно, напишите простой макрос. Он удалит все нецифровые символы в выбранных ячейках:

Sub ОчиститьЦифры()

Dim rng As Range, cell As Range

Set rng = Selection

For Each cell In rng

cell.Value = Application.WorksheetFunction.TextJoin("", True, Split(Join(Application.WorksheetFunction.Transpose _

(FilterXML("" & Replace(cell.Value, ";", "") & "", "//s[translate(.,'0123456789','')='']")), ";"), ""))

Next cell

End Sub

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

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

Макрос работает даже с отрицательными числами (например, «-123АБВ»«-123») и дробями3,14м2»«3,14»). Для ускорения обработки больших диапазонов отключите обновление экрана:

Application.ScreenUpdating = False
Как обработать дробные числа с запятой?

Если в ваших данных дробные числа разделяются запятой (например, "3,14"), а Excel ожидает точку, добавьте в макрос строку замены:

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

Это преобразует "3,14" в "3.14" для корректной работы с формулами.

5. Способ: Функция ПЕРЕВЕСТИ + КОДСИМВ (для сложных символов)

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

=ТЕКССОЕДИНИТ("";ИСТИНА;ЕСЛИОШИБКА(ЕСЛИ(И(КОДСИМВ(ПОДСТРОКА(A1;ПОСЛЕДОВАТЕЛЬНОСТЬ(1;ДЛСТР(A1));1))>=48;КОДСИМВ(ПОДСТРОКА(A1;ПОСЛЕДОВАТЕЛЬНОСТЬ(1;ДЛСТР(A1));1))<=57);ПОДСТРОКА(A1;ПОСЛЕДОВАТЕЛЬНОСТЬ(1;ДЛСТР(A1));1);"");""))

Пояснение:

  • 🔤 КОДСИМВ возвращает код каждого символа в строке.
  • 📏 Цифры в таблице ASCII имеют коды от 48 («0») до 57 («9»).
  • 🔄 ЕСЛИ проверяет, попадает ли код символа в этот диапазон.

Этот метод гарантированно удалит даже скрытые символы, например, из выгрузок с сайтов или PDF. Минус — формула сложна для редактирования и тормозит на больших диапазонах.

6. Способ: Разделение по столбцам (для структурированных данных)

Если цифры в ячейке имеют фиксированное положение (например, «Артикул: 12345-АБ»), можно использовать инструмент «Текст по столбцам»:

  1. Выделите столбец → Данные → Текст по столбцам.
  2. Выберите «С разделителями» → нажмите «Далее».
  3. Укажите разделитель (например, «-» или пробел) → «Готово».

После разделения цифры окажутся в отдельном столбце. Этот способ не универсален, но полезен для данных с чёткой структурой, например:

Исходные данныеРазделительРезультат
ID-45678-AB-45678
Цена 1500 руб.пробел1500
+7(912)345-67-89()-79123456789

Важно: если разделителей несколько (например, пробелы и дефисы), придётся повторить операцию несколько раз или использовать другой метод.

7. Способ: Онлайн-сервисы (для одноразовых задач)

Если вам нужно очистить данные один раз и нет желания разбираться в формулах, воспользуйтесь бесплатными онлайн-инструментами:

  • 🌐 TextFixer — извлекает цифры из текста, поддерживает загрузку файлов Excel.
  • 📊 Ablebits — очищает данные с сохранением форматирования.
  • 🔧 Excel Formula Bot — генерирует формулы для очистки под ваш конкретный случай.

Предупреждение:

⚠️ Внимание: онлайн-сервисы требуют загрузки ваших данных на сторонние серверы. Не используйте их для конфиденциальной информации (номера паспортов, банковские реквизиты).

Плюс таких сервисов — интуитивный интерфейс и предварительный просмотр результата. Например, в TextFixer можно указать, нужно ли сохранять знаки «+», «-» или десятичные разделители.

FAQ: Частые вопросы по очистке данных в Excel

Можно ли удалить буквы, но сохранить знак «минус» перед числом?

Да. Используйте формулу с учетом первого символа:

=ЕСЛИ(ЛЕВСИМВ(A1)="-";"-"&ПОДСТАВИТЬ(ПРАВСИМВ(A1;ДЛСТР(A1)-1);"-";"");ПОДСТАВИТЬ(A1;"-";""))

Или макрос VBA из 4-го способа — он автоматически сохраняет знак.

Как очистить ячейки, где цифры перемешаны с буквами (например, «А1Б2В3»)?

Для таких случаев подойдёт:

  • Функция с регулярными выражениями (2-й способ).
  • Макрос VBA (4-й способ).
  • Инструмент Power Query (3-й способ).

Формула ПОДСТАВИТЬ (1-й способ) здесь не сработает, так как буквы не имеют фиксированного шаблона.

Почему после очистки числа отображаются с экспонентой (например, 1.23E+12)?

Это происходит, когда Excel интерпретирует длинную строку цифр как число в научном формате. Чтобы исправить:

  1. Выделите ячейки → Главная → Формат → Формат ячеек.
  2. Выберите категорию «Текст» или «Числовой» с нужным количеством десятичных знаков.

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

Как автоматизировать очистку для новых данных?

Настройте динамический диапазон и привяжите к нему макрос:

  1. Создайте именованный диапазон: Формулы → Диспетчер имен → Создать.
  2. В макросе замените Selection на ваш диапазон, например:
    Set rng = Range("ДанныеДляОчистки")
  3. Назначьте макрос на кнопку или запускайте по событию (например, при открытии файла).

Для Power Query сохраните запрос и обновите его по мере поступления новых данных.

Что делать, если после очистки числа не суммируются?

Скорее всего, результаты сохранены как текст. Преобразуйте их в числа:

  • Выделите ячейки → нажмите на восклицательный знак («Ошибка в числе») → «Преобразовать в число».
  • Используйте формулу =ЗНАЧЕН(A1) в соседнем столбце.
  • В VBA добавьте строку cell.Value = CDbl(cell.Value).

Если ни один из способов не подошёл — опишите ваш случай в комментариях: приведите пример данных и ожидаемый результат. Мы поможем подобрать решение!