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

Работа с «грязными» данными в Microsoft Excel — одна из самых распространённых задач, с которыми сталкиваются аналитики, бухгалтеры и менеджеры. Часто числа в ячейках «загрязнены» лишними символами: валютами (100$), единицами измерения (50 кг), постфиксами (2023_год) или случайным текстом (Прибыль: 15000). Вручную очищать тысячи строк — неэффективно, а стандартная функция НАЙТИ И ЗАМЕНИТЬ не всегда справляется с задачей. Эта статья поможет разобраться, как быстро и автоматизированно удалить текст из ячеек с цифрами, сохранив только числовые значения.

Мы рассмотрим решения для разных сценариев: от простых формул до написания макросов на VBA. Все методы протестированы на версиях Excel 2010–2023 и Office 365, включая веб-версию. Особое внимание уделено случаям, когда числа хранятся как текст (например, после импорта из CSV или PDF), а также когда требуется сохранить форматирование ячеек.

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

Почему стандартные инструменты Excel не всегда работают

Многие пользователи пытаются удалить текст из ячеек с помощью функции НАЙТИ И ЗАМЕНИТЬ (Ctrl+H), но сталкиваются с проблемами:

  • 🔹 Непредсказуемый формат данных: текст может стоять до числа (Цена: 100), после (100 руб.) или быть перемешан с цифрами (A1B2C3).
  • 🔹 Числа как текст: Excel воспринимает '100 (с апострофом) или 100 (с пробелом) как текстовые значения, и стандартные математические операции с ними не работают.
  • 🔹 Потеря форматирования: при замене теряются цвета, границы или условное форматирование ячеек.
  • 🔹 Ограничения на символы: НАЙТИ И ЗАМЕНИТЬ не поддерживает регулярные выражения (доступны только в Excel 365 с функцией ТЕКСТРАЗД).

Например, если вы попробуете заменить руб. на пустоту, то в ячейке 100 руб. и 50 коп. останется 100 и 50 коп. — это не решит задачу. Или другой случай: в данных есть и 100$, и 100 евро. Заменить оба варианта одной операцией не получится.

⚠️ Внимание: Если в ячейке содержится только текст без цифр (например, Нет данных), то после удаления текста она станет пустой. Это может исказить результаты формул, ссылающихся на эти ячейки (например, СУММ проигнорирует пустые значения).

В следующих разделах мы разберём методы, которые учитывают эти нюансы и гарантированно извлекут числа из любых комбинаций.

Способ 1: Использование функции «Текст по столбцам» (для простых случаев)

Если текст в ячейках имеет фиксированный разделитель (например, пробел, запятую или тире), то самый быстрый способ — воспользоваться инструментом Текст по столбцам. Он подходит для данных типа:

  • 📌 100 кг → разделитель: пробел
  • 📌 Прибыль-5000 → разделитель: тире
  • 📌 2023, январь → разделитель: запятая

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

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

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

Убедитесь, что в ячейках нет переносов строк (замените их на пробелы)

Проверьте, что разделитель одинаковый во всех строках

Создайте резервную копию данных (Ctrl+C → вставьте на другой лист)

Удалите пустые строки, чтобы избежать сдвига данных-->

⚠️ Внимание: Если в исходных данных есть ячейки с несколько числами (например, 100-200 кг), то после разделения вы получите два столбца: 100 и 200 кг. В этом случае метод не подходит — используйте формулы из следующих разделов.

Преимущество этого способа — сохранение форматирования ячеек (цвета, границы). Недостаток — он работает только с однотипными разделителями.

Способ 2: Формулы для извлечения чисел (универсальный метод)

Когда текст и числа перемешаны произвольным образом (например, A1B2C3 или Прибыль составила 15000$ в 2023), на помощь приходят формулы. Мы рассмотрим три варианта:

  1. Для чисел в начале/конце ячейки (например, 100 кг или Цена: 500).
  2. Для чисел в произвольном месте (например, Артикул X100Y).
  3. Для дробных чисел (например, 3.14 м).

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

2.1. Число стоит в начале или конце ячейки

Если число расположено в начале (например, 100 кг), используйте:

=ЛЕВСИМВ(A1;НАЙТИ(" ";A1)-1)

Где " " — разделитель (пробел). Для других разделителей (например, : или -) замените символ в кавычках.

Если число расположено в конце (например, Цена: 500), используйте:

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

Для автоматического преобразования результата в число оберните формулу в ЗНАЧЕН:

=ЗНАЧЕН(ЛЕВСИМВ(A1;НАЙТИ(" ";A1)-1))

2.2. Число в произвольном месте ячейки

Для извлечения первого числа в ячейке (независимо от его позиции) используйте массивную формулу:

=МИН(ЕСЛИОШИБКА(НАЙТИ(СТРОКА($A$1:$A$10);A1);""))

Завершите ввод нажатием Ctrl+Shift+EnterExcel 365 достаточно просто Enter).

Для извлечения всех чисел из ячейки (например, из A1B2C3 получить 123) используйте пользовательскую функцию на VBA (см. Раздел 5).

2.3. Работа с дробными числами

Если в ячейке дробное число с текстом (например, 3.14 м), используйте комбинацию функций:

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

Для замены нескольких постфиксов (например, м, кг, шт.) используйте вложенную ПОДСТАВИТЬ:

=ЗНАЧЕН(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;" м";"");" кг";"");" шт.";""))
Исходные данные Формула Результат
100 кг =ЗНАЧЕН(ЛЕВСИМВ(A1;НАЙТИ(" ";A1)-1)) 100
Цена: 500 =ЗНАЧЕН(ПСТР(A1;НАЙТИ(":";A1)+1;ДЛСТР(A1))) 500
A1B2C3 Пользовательская функция VBA (см. Раздел 5) 123
3.14 м =ЗНАЧЕН(ПОДСТАВИТЬ(A1;" м";"")) 3.14
📊 Какой способ извлечения чисел вы используете чаще?
Формулы
Текст по столбцам
Найти и заменить
Макросы VBA

Способ 3: Power Query — мощный инструмент для очистки данных

Power Query (доступен в Excel 2016+ и Office 365) — это самый гибкий инструмент для работы с «грязными» данными. Он позволяет:

  • 🔧 Очищать текст по шаблонам (например, удалять все нецифровые символы).
  • 🔧 Разделять столбцы по нескольким разделителям одновременно.
  • 🔧 Сохранять историю преобразований для повторного использования.
  • 🔧 Работать с большими объёмами данных (миллионы строк).

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

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

Если нужно сохранить только целые числа (удалить дробную часть), используйте замену ,[0-9]* на пустоту (заменит запятую и все символы после неё).

Регулярные выражения для Power Query

[^0-9] — удаляет всё, кроме цифр [^0-9.,-] — оставляет цифры, точки, запятые и тире (для дробных чисел и диапазонов) ^[а-яА-Яa-zA-Z\s]+ — удаляет текст в начале ячейки (до первого числа) [а-яА-Яa-zA-Z\s]+$ — удаляет текст в конце ячейки (после последнего числа)

⚠️ Внимание: После очистки в Power Query числа могут отображаться как текст (выровнены по левому краю). Чтобы исправить это, выделите столбец и нажмите Преобразование → Тип данных → Число.

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

  • 🔹 Не требует знания формул или VBA.
  • 🔹 Преобразования сохраняются и могут быть обновлены при изменении исходных данных.
  • 🔹 Поддерживает сложные сценарии (например, извлечение чисел из JSON или XML).

Способ 4: Найти и заменить с подстановочными знаками

Если у вас Excel 365 или Excel 2021, то в функции НАЙТИ И ЗАМЕНИТЬ (Ctrl+H) появилась поддержка регулярных выражений. Это позволяет удалять текст по шаблонам без формул.

Инструкция:

  1. Выделите диапазон с данными.
  2. Нажмите Ctrl+H.
  3. В поле Найти введите:
    • Для удаления всего текста кроме чисел: [!0-9.,-] (оставит цифры, точки, запятые и тире).
    • Для удаления текста до числа: ^[!0-9]*.
    • Для удаления текста после числа: [!0-9]*$.
  • Оставьте поле Заменить на пустым.
  • Нажмите Заменить всё.
  • Для Excel 2010–2019 можно использовать подстановочные знаки:

    • 🔹 ? — любой одиночный символ.
    • 🔹 * — любая последовательность символов.

    Например, чтобы удалить руб. в конце ячейки, введите в поле Найти: руб.*.

    Ограничения метода:

    • 🔸 В Excel 2010–2019 нет поддержки регулярных выражений — только подстановочные знаки.
    • 🔸 Не работает с ячейками, где числа перемешаны с текстом (например, A1B2C3).
    • 🔸 Может случайно удалить части чисел (например, в 100-200 удалит тире, и получится 100200).

    Способ 5: Макросы VBA для сложных случаев

    Если предыдущие методы не справились (например, когда числа перемешаны с текстом в произвольном порядке), напишите пользовательскую функцию на VBA. Она извлечёт все цифры из ячейки, независимо от их позиции.

    Инструкция:

    1. Нажмите Alt+F11, чтобы открыть редактор VBA.
    2. Вставьте новый модуль: Вставка → Модуль.
    3. Скопируйте следующий код:
      Function ExtractNumbers(rng As Range) As Double
      

      Dim str As String

      Dim i As Integer

      Dim result As String

      str = rng.Value

      result = ""

      For i = 1 To Len(str)

      If IsNumeric(Mid(str, i, 1)) Then

      result = result & Mid(str, i, 1)

      End If

      Next i

      If result <> "" Then

      ExtractNumbers = CDbl(result)

      Else

      ExtractNumbers = 0

      End If

      End Function

    4. Закройте редактор VBA.
    5. Теперь в Excel можно использовать функцию =ExtractNumbers(A1).

    Эта функция:

    • 🔹 Извлекает все цифры из ячейки (например, из A1B2C3 вернёт 123).
    • 🔹 Игнорирует буквы, символы и пробелы.
    • 🔹 Возвращает 0, если в ячейке нет цифр.

    Для работы с дробными числами модифицируйте код, добавив поддержку точки или запятой:

    Function ExtractNumbersDecimal(rng As Range) As Double
    

    Dim str As String

    Dim i As Integer

    Dim result As String

    Dim hasDot As Boolean

    str = rng.Value

    result = ""

    hasDot = False

    For i = 1 To Len(str)

    If IsNumeric(Mid(str, i, 1)) Then

    result = result & Mid(str, i, 1)

    ElseIf Mid(str, i, 1) = "." Or Mid(str, i, 1) = "," Then

    If Not hasDot Then

    result = result & "."

    hasDot = True

    End If

    End If

    Next i

    If result <> "" Then

    ExtractNumbersDecimal = CDbl(result)

    Else

    ExtractNumbersDecimal = 0

    End If

    End Function

    ⚠️ Внимание: Макросы VBA работают только в файлах с расширением .xlsm (с поддержкой макросов). При открытии файла Excel может показать предупреждение о безопасности — разрешите выполнение макросов, если доверяете источнику.

    Способ 6: Использование Flash Fill (быстрое заполнение)

    Flash Fill (доступен в Excel 2013+) — это инструмент для автоматического заполнения данных по образцу. Он удобен, когда нужно быстро удалить текст из небольшого количества ячеек.

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

    1. В столбце рядом с исходными данными введите желаемый результат для первой строки. Например, если в A1 написано 100 кг, а вам нужно 100, введите 100 в B1.
    2. Начните вводить результат для второй строки — Excel предложит автоматически заполнить остальные ячейки.
    3. Нажмите Enter, чтобы принять предложение.

    Flash Fill распознаёт шаблоны и может:

    • 🔹 Удалять текст до/после числа.
    • 🔹 Сохранять разделители (например, в 100-200 оставит 100 или 200 в зависимости от образца).
    • 🔹 Работать с датами и временем (например, извлекать год из 01.01.2023).

    Ограничения:

    • 🔸 Требуется ручной ввод образца для первых 1–2 строк.
    • 🔸 Не всегда корректно работает с дробными числами (может округлить 3.14 до 3).
    • 🔸 Не сохраняет историю действий — при изменении исходных данных придётся повторять процесс.

    Совет: если Flash Fill не сработал с первого раза, введите ещё 1–2 примера вручную, чтобы Excel лучше понял шаблон.

    Типичные ошибки и как их избежать

    При очистке данных пользователи часто сталкиваются с следующими проблемами:

    Ошибка Причина Решение
    Числа отображаются как текст (с зелёным треугольником) Excel не распознаёт формат после очистки Выделите ячейки → жёлтый значок !Преобразовать в число
    Формулы возвращают #ЗНАЧ! В ячейке нет чисел, только текст Добавьте проверку ЕСЛИОШИБКА или ЕПУСТО
    После замены остались лишние символы Не учтён регистр или пробелы Используйте СЖПРОБЕЛЫ и проверяйте регистр в формулах
    Макрос не работает Отключены макросы или неправильное расширение файла Сохраните файл как .xlsm и включите макросы в настройках безопасности
    Power Query не обновляет данные Не настроено автоматическое обновление Щёлкните правой кнопкой по таблице → Обновить

    Критическая ошибка: если вы используете формулы для извлечения чисел, а затем копируете значения обратно поверх исходных данных, то оригинальные данные будут безвозвратно утеряны. Всегда работайте с копией или сохраняйте резервную копию листа.

    Ещё одна распространённая проблема — потеря точности при работе с большими числами. Например, если в ячейке 123456789012345, а после очистки формула возвращает 1.23457E+15, значит Excel округлил значение. Чтобы избежать этого, используйте формат ячейки Текстовый или функцию ТЕКСТ:

    =ТЕКСТ(ЗНАЧЕН(ЛЕВСИМВ(A1;15));"0")

    FAQ: Ответы на частые вопросы

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

    Да, но не всеми способами. Форматирование сохранят:

    • 🔹 Текст по столбцам (Способ 1).
    • 🔹 Найти и заменить (Способ 4).
    • 🔹 Flash Fill (Способ 6).

    Формулы и Power Query создают новые данные, поэтому форматирование придётся применять заново.

    Как удалить текст из ячеек с датами (например, "01.01.2023 год")?

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

    =ДАТАЗНАЧ(ЛЕВСИМВ(A1;10))

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

    Почему после очистки числа отображаются как ######?

    Это означает, что ширина столбца недостаточна для отображения числа или отрицательная дата (например, -100 в формате даты). Растяните столбец или проверьте формат ячейки.

    Как удалить текст из ячеек в Google Таблицах?

    В Google Sheets используйте функцию REGEXEXTRACT:

    =REGEXEXTRACT(A1; "[0-9.,]+")

    Или комбинацию ARRAYFORMULA с VALUE для преобразования в числа.

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

    Да, для этого:

    1. Создайте шаблон в Power Query с нужными преобразованиями.
    2. Сохраните запрос и используйте его при каждом импорте.
    3. Настройте Автообновление в параметрах связи.

    Также можно записать макрос для импорта и очистки данных одной кнопкой.