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

Проблема: в ячейках Excel смешаны цифры и текст. Как их разделить?

Вы скачали отчёт из , получили данные из Google Analytics или импортировали CSV-файл — и вместо чисел в ячейках Excel красуются странные комбинации вроде "123 руб.", "ID-4567" или "20% скидка". Нужно срочно провести расчёты, построить сводную таблицу или график, но Excel упорно воспринимает эти данные как текст, а не как числа. Знакомая ситуация?

В этой статье разберём 5 способов извлечь цифры из "загрязнённых" ячеек — от простых формул до автоматизации через Power Query и VBA. Каждый метод подходит для разных сценариев: одни работают за секунды на небольших таблицах, другие спасают при обработке тысяч строк. А ещё вы узнаете, почему стандартная функция "Найти и заменить" часто даёт сбой при очистке данных с валютами и процентами — и как этого избежать.

Прежде чем приступать, проверьте: ваши "цифры в тексте" могут быть на самом деле датами в неверном формате (например, "01.01.2023" Excel хранит как число 44927). Если это так — используйте формат ячеек Числовой или Дата, а не методы из этой статьи.

Метод 1: Формулы для извлечения чисел (без VBA)

Самый универсальный способ — использовать комбинацию текстовых функций. Они работают во всех версиях Excel (включая Excel Online) и не требуют правки макросов. Основной инструмент здесь — функция ПСТР (или MID в английской версии), но её нужно правильно "обернуть".

Для ячеек с фиксированным форматом (например, "Цена: 1500 руб.") подойдёт простая формула:

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

Но если текст и цифры перемешаны хаотично (например, "Товар45кг2023"), понадобится более сложный подход с регулярными выражениями. К сожалению, в стандартном Excel их нет — придётся использовать массив формул:

=СУММПРОИЗВ(--(НЕОШ(ЗНАЧЕН(ПСТР(A1;СТРОКА($1:$100);1)))));10^(СТРОКА($1:$100)-1)))

Эта формула должна вводиться как массивная (нажмите Ctrl+Shift+Enter в старых версиях Excel). Она последовательно проверяет каждый символ в ячейке и суммирует только цифры.

  • Плюсы: работает без макросов, подходит для одноразовых задач
  • Минусы: сложно модифицировать, тормозит на больших диапазонах
  • 🔄 Альтернатива: в Excel 365 можно использовать ТЕКСТПОСЛЕ + ТЕКСТДО для более читаемых формул
📊 Какой версии Excel вы пользуетесь?
Excel 2010-2016
Excel 2019
Excel 365 (подписка)
Excel Online
Другая

Метод 2: "Найти и заменить" — когда оно работает (и когда нет)

Многие пытаются удалить текст через Ctrl+H (Найти и заменить), но этот метод работает только в 30% случаев. Он подходит, если:

  • 📌 Текстовые символы одинаковые во всех ячейках (например, "$" или " руб.")
  • 📌 Цифры всегда стоят в начале или конце ячейки
  • 📌 Нет пробелов между цифрами и текстом (например, "100kg", а не "100 kg")

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

  1. Выделите диапазон с данными
  2. Нажмите Ctrl+H
  3. В поле "Найти" введите текстовый символ (например, " руб.")
  4. Поле "Заменить на" оставьте пустым
  5. Нажмите "Заменить всё"

Если после замены цифры остались текстом (выровнены по левому краю), примените формат Числовой или используйте функцию ЗНАЧЕН.

⚠️ Внимание: Этот метод не сработает, если в ячейке перемешаны цифры и буквы (например, "A1B2C3"). В таких случаях используйте формулы из Метода 1 или Power Query.

Метод 3: Power Query — обработка тысяч строк за минуты

Если у вас Excel 2016+ или Excel 365, инструмент Power Query (или Get & Transform) станет вашим спасением. Он позволяет:

  • 🔍 Автоматически распознавать шаблоны в данных
  • 🧹 Удалять ненужные символы по маске
  • 🔄 Применять преобразования к новым данным при обновлении

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

  1. Выделите диапазон с данными и нажмите Данные → Из таблицы/диапазона (или Data → From Table/Range)
  2. В открывшемся редакторе Power Query выберите столбец с данными
  3. Перейдите на вкладку Преобразовать (Transform)
  4. Выберите Извлечь → Текст после делителя (если цифры в конце) или Текст перед делителем (если цифры в начале)
  5. В качестве делителя укажите текстовый символ (например, пробел или "руб.")
  6. При необходимости примените Заменить значения для очистки остатков текста
  7. Нажмите Закрыть и загрузить

Для сложных случаев (например, "Арт.123-45-678") используйте пользовательский столбец с формулой на языке M:

= Text.Select([Column1], {"0".."9"})

Эта команда оставит только цифры, удалив всё остальное.

Исходные данные Формула Power Query Результат
"Цена: 1500 руб." = Text.AfterDelimiter([Column1], ":")
+ Text.Replace(_, " руб.", "")
1500
"ID-4567" = Text.Select([Column1], {"0".."9"}) 4567
"20% скидка" = Text.BeforeDelimiter([Column1], "%") 20

☑️ Подготовка данных в Power Query

Выполнено: 0 / 4

Метод 4: Макросы VBA — автоматизация для продвинутых

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

Sub ExtractNumbersOnly()

Dim rng As Range

Dim cell As Range

Dim output As String

Dim i As Integer

' Выбираем диапазон (измените "A1:A100" на ваш диапазон)

Set rng = Selection

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.Value = Val(output)

Next cell

End Sub

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

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

Для обработки дробных чисел (например, "3,14м") модифицируйте строку с Val(output) на:

cell.Value = CDbl(output) / 100 ' если цифры после запятой — две
⚠️ Внимание: Макросы отключены по умолчанию в целях безопасности. Перед первым запуском проверьте, что файл сохранён с расширением .xlsm (не .xlsx!) и включите макросы в Файл → Параметры → Центр управления безопасностью.
Как ускорить макрос для больших таблиц?

Добавьте в начало кода строки:

Application.ScreenUpdating = False

Application.Calculation = xlCalculationManual

А в конец:

Application.Calculation = xlCalculationAutomatic

Application.ScreenUpdating = True

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

Метод 5: Разделение по столбцам — если текст и цифры разделены символом

Когда данные имеют чёткую структуру (например, "123;ТоварА" или "Код-456"), проще всего воспользоваться инструментом Текст по столбцам:

  1. Выделите диапазон с данными
  2. Перейдите на вкладку Данные (Data)
  3. Нажмите Текст по столбцам (Text to Columns)
  4. Выберите С разделителями (Delimited)
  5. Укажите символ-разделитель (например, "-", ";" или пробел)
  6. Нажмите Готово

Excel разобьёт данные на отдельные столбцы. Вам останется только скопировать столбец с цифрами и вставить его значения (Специальная вставка → Значения) обратно.

Для данных с несколько разделителями (например, "100 руб. (5 шт.)") повторите процедуру дважды: сначала разделите по " руб.", затем — по " (".

Исходные данные Разделитель Результат в 1-м столбце Результат во 2-м столбце
"123-456-789" "-" 123 456
"Цена: 1500 руб." ":" (затем пробел) Цена 1500 руб.
"20% скидка" "%" 20 скидка

Сравнение методов: какой выбрать?

Выбор способа зависит от объёма данных, структуры текста и вашего уровня владения Excel. Вот краткое руководство:

  • 📌 1-100 строк, простой формат: Найти и заменить или Текст по столбцам
  • 📌 100-1000 строк, хаотичный текст: формулы (Метод 1) или Power Query (Метод 3)
  • 📌 1000+ строк, регулярная обработка: макрос VBA (Метод 4)
  • 📌 Данные с дробными числами: Power Query или модифицированный макрос

Для одноразовых задач оптимален Power Query — он сохраняет шаги преобразования, и при обновлении данных вам не придётся повторять действия вручную. Если же вам нужно очистить данные прямо в ячейках (без создания новых столбцов), используйте макрос или формулы.

Частые ошибки и как их избежать

Даже опытные пользователи Excel сталкиваются с проблемами при очистке текста. Вот топ-5 ошибок и их решения:

  1. Цифры остаются текстом после очистки
    Причина: Excel сохраняет формат ячейки. Решение: Примените формат Числовой или используйте функцию ЗНАЧЕН.
  2. Формулы возвращают #ЗНАЧ!
    Причина: В данных есть пустые ячейки. Решение: Добавьте проверку ЕСЛИОШИБКА или ЕПУСТО.
  3. Макрос не работает с дробными числами
    Причина: Код извлекает только целые цифры. Решение: Замените Val на CDbl и учтите разделитель (точка или запятая).
  4. Power Query "не видит" изменения
    Причина: Данные не обновлены. Решение: Нажмите Данные → Обновить все.
  5. После разделения по столбцам остаются лишние символы
    Причина: Неправильно выбран разделитель. Решение: Используйте Пробел как разделитель или очищайте данные вручную.

Если ни один метод не сработал, проверьте кодировку файла (особенно при импорте из CSV или TXT). Иногда "мусорные" символы появляются из-за неверной кодировки (UTF-8 vs Windows-1251).

FAQ: Ответы на популярные вопросы

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

Да, есть три способа без формул:

  1. Найти и заменить (подходит для простых случаев)
  2. Текст по столбцам (если текст и цифры разделены символом)
  3. Power Query (самый гибкий метод без VBA)

Если нужно сохранить результат в тех же ячейках, используйте Специальную вставку → Значения после обработки.

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

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

  1. Выделите ячейки
  2. Нажмите Ctrl+1 (или правая кнопка → Формат ячеек)
  3. Выберите формат Числовой или Денежный
  4. Установите нужное количество десятичных знаков

Если число слишком большое (более 15 знаков), Excel округлит его. В этом случае храните данные как текст или используйте Power Query для предварительной обработки.

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

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

  • 🔹 Для формул используйте REGEXEXTRACT вместо комбинации ПСТР/НАЙТИ:
    =ARRAYFORMULA(IFERROR(VALUE(REGEXEXTRACT(A1:A100; "\d+"))))
  • 🔹 Power Query заменяет Google Apps Script (аналог VBA)
  • 🔹 Текст по столбцам называется Разделить текст на столбцы (меню Данные)

Для сложных случаев в Google Sheets удобнее использовать Apps Script с регулярными выражениями.

Можно ли вернуть исходные данные после очистки?

Если вы не сделали резервную копию, восстановить исходные данные невозможно. Чтобы избежать потерь:

  • 📌 Всегда дублируйте исходный диапазон на другой лист (Правка → Переместить/скопировать лист)
  • 📌 Используйте Power Query — он сохраняет историю преобразований
  • 📌 Перед применением макроса сохраните файл с другим именем

В крайнем случае проверьте версии файла (если включено автосохранение в OneDrive или Google Drive).

Как обработать данные с отрицательными числами (например, "-150 руб.")?

Отрицательные числа требуют особого подхода:

  • 🔹 В формулах добавьте проверку на знак:
    =ЕСЛИ(ЛЕВСИМВ(A1)="-";-ЗНАЧЕН(ПСТР(A1;2;ДЛСТР(A1)));ЗНАЧЕН(ПСТР(A1;НАЙТИ(" ";A1);ДЛСТР(A1))))
  • 🔹 В Power Query используйте:
    = if Text.StartsWith([Column1], "-") then -Text.AfterDelimiter([Column1], "-") else Text.BeforeDelimiter([Column1], " ")
  • 🔹 В VBA модифицируйте цикл, чтобы учитывать первый символ:
    If Left(cell.Value, 1) = "-" Then output = "-"