Как извлечь текст только из буквенно-цифровой строки в Excel?

Опубликовано: 30 Сентября, 2022

Чаще всего мы получаем «идентификационные поля» в виде буквенно-цифровых строк. Нам нужно извлечь только текст из «идентификационных полей» для дальнейшей обработки.

В этой статье мы используем два подхода (формула Excel — функция замены и Excel VBA — определяемая пользователем функция) для извлечения текста только из буквенно-цифровых строк.

Подход 1: Использование формулы Excel

Обсужденную выше постановку проблемы можно решить с помощью встроенных формул Excel, как описано ниже:

Синтаксис:

SUBSTITUTE (text, old_text, new_text, [instance_num])

Где,

  • текст: это входная ячейка (текст).
  • old_text: Это текст, который нужно найти.
  • new_text: текст для замены.

Реализация:

Шаг 1: Откройте Эксель.

Шаг 2: Введите любую буквенно-цифровую строку в ячейку «B5» (например, geeksId345768).

Шаг 3: Напишите приведенную ниже формулу в ячейке «C5» (мы использовали вложенную функцию замены для замены чисел от 0 до 9)

= SUBSTITUTE(SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE(SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE(B5,"0",""),"1",""),"2",""), "3",""),"4",""),"5",""), "6",""),"7",""),"8",""),"9","")

Подход 2: определяемая пользователем функция Excel VBA

В Excel VBA мы можем определить функции для решения задачи. Реализация приведена ниже для того же самого.

Реализация:

Шаг 1: Откройте Эксель.

Шаг 2: Введите любую буквенно-цифровую строку в ячейку «B5» (например, geeksId345768).

Шаг 3: Напишите ниже код VBA в модуле:

Function onlyText(rg As Range) As String

Dim ipVal As String
Dim opValue As String
  • Инициализировать переменную
ipVal = rg.Value
  • Повторить входную строку
For i = 1 To Len(ipVal)
  • Проверьте, является ли символ числовым или нет
   If Not IsNumeric(Mid(ipVal, i, 1)) Then
       opValue = opValue & Mid(ipVal, i, 1)
   End If
Next
  • Возвратный вывод
onlyText = opValue
End Function

Шаг 4. Сохраните файл Excel как «Книга Excel с поддержкой макросов» [*.xlsm].

Шаг 5: Введите имя функции «= onlyText (B5)» в ячейку «C5».

Макрос удаляет все числовые символы из ячейки «B5» и возвращает в ячейку «C5».