Как удалить из текстовых ячеек все символы, кроме цифр, таким образом «вытащив» из них цифры? Есть несколько простых и непростых решений.
Заменой остальных символов
Самым неоптимальным способом стала бы последовательная замена всех символов на «пустоту». Если лишних символов немного и вы умеете быстро печатать, можно обойтись и таким образом :) Но статья, конечно же, не о таких кейсах.
Если данных тысячи строк и лишних символов много, такой подход приведет к трате огромного количества времени.
Если данных сотни тысяч строк, и известно, что цифры присутствуют лишь в малой их части, будет полезным сперва найти числа в ячейках. Это позволит отфильтровать попадающие под требования ячейки и далее работать уже с ними — так будет менее ресурсозатратно. Возможно, далее вам потребуется удалить эти цифры из текста в ячейках Excel.
С помощью пользовательских функций (UDF)
Пример пользовательской функции, которая поможет с извлечением чисел из текста:
Function extrNum(x As String) As Long
For n = 1 To Len(x)
If Mid(x, n, 1) Like "#" Then extrNum = extrNum & Mid(x, n, 1)
Next n
End Function
Как применить данный код:
— Внедрить его в новый модуль книги (используемой сейчас или в личной книге макросов)
— Применить функцию на листе в подобном виде: =extrNum(A1)
С помощью синтаксиса регулярных выражений
Регулярные выражения — отличный помощник при работе с текстовыми данными. Их синтаксис для обработки простых паттернов довольно прост, но возможностей все усложнить предостаточно.
Как в платной, так и в бесплатной версии !SEMTools есть функции:
- regexReplace, берущая на вход 3 аргумента — строку с данными, текст регулярного выражения и строку для замены.
- regexExtract с двумя аргументами — строкой и паттерном для извлечения.
Выражение для замены любых символов, кроме цифр, на пустоту, будет выглядеть следующим образом:
=REGEXREPLACE(A1;"[^\d]";"")
Выражение для извлечения первой сплошной последовательности цифр:
=REGEXEXTRACT(A1;"\d+")
Что потребуется:
— Установить !SEMTools
— Применить функции
Извлечь цифры из текста в 1 клик

Пользователям платной версии !SEMTools доступна возможность извлекать цифры моментально прямо «на месте», не прописывая никаких функций.
Макрос находится в группе «ИЗВЛЕЧЬ» в меню «Извлечь символы».
Полезная особенность — макрос оставляет между числами пробел, если между ними был любой другой нецифровой символ. Это может помочь не склеить необратимо несколько чисел в одно. Если необходимости в этом нет, можно постфактум просто заменить пробел на «пустоту». Например, если в ячейке два номера телефона через запятую.
Видеоинструкция
Удалить текст, а цифры оставить — именно такова механика алгоритма !SEMTools. Смотрите короткий видеопример:
Нужно извлечь числа из текста в Excel?
В !SEMTools есть это и сотни других готовых решений!!
Возможно при помощи надстройки вытащить все числа с плавающей запятой из текста?
Посмотрите в разделе про регулярные выражения в Excel, там точно найдете решение.