Как удалить все ведущие алфавитные символы?

Я заинтересован в удалении ведущих алфавитных (альфа) символов из ячеек, которые появляются в столбце. Я просто хочу удалить ведущие альфа-символы (включая ВЕРХНИЙ и НИЖНИЙ случай): если после номера появятся альфа-символы, они должны быть сохранены. Некоторые ячейки в столбце могут не иметь ведущих альфа-символов.

Вот пример того, что у меня есть:

36173 PIL51014 4UNV22001 ZEB54010 BICMPAFG11BK BICMPF11 

Обратите внимание, что не всегда одинаковое количество ведущих альфа-символов. Я не могу просто использовать функцию «Влево» или «Вправо» в Excel, потому что количество символов, которые я хочу сохранить и удалить, меняется.

Правильный результат для того, что я ищу, будет выглядеть так:

 36173 51014 4UNV22001 54010 11BK 11 

Обратите внимание, что вторая в последней строке сохранила символы «BK», а третья строка сохранила «UNV». Я не могу просто удалить все альфа-символы.

Я новичок с визуальным основанием и не мог понять, как использовать функции excel для решения моей проблемы. Как мне это сделать?

Вот формула Excel, которая будет «отделять ведущие альфа-символы». На самом деле, он ищет первый числовой символ и возвращает все после этого:

 =MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A1&"0123456789")),99) 

99 в конце должно быть некоторое значение длиннее, чем самая длинная строка, которую вы могли бы обрабатывать. 99 обычно работает.

Вот решение на основе формулы с результатами теста:

 =MID(A1,MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A1&"0123456789"),255),100) 

введите описание изображения здесь

Измените 100 в конце, если какая-либо строка может быть длиннее 100 символов. Также 255 не нужен, но это не повредит.

Этот короткий UDF должен отделять ведущие буквенные символы.

 Function noLeadAlpha(str As String) If Not IsNumeric(str) Then Do While Asc(str) < 48 Or Asc(str) > 57 str = Mid(str, 2) If Not CBool(Len(str)) Then Exit Do Loop End If noLeadAlpha = str End Function 

udf_no_leading_alphas

Koodos Jeeped, вы избили меня.

Но вот альтернатива:

 Function RemoveAlpha(aString As String) As String For i = 1 To Len(aString) Select Case Mid(aString, i, 1) Case "0" To "9" RemoveAlpha = Right(aString, Len(aString) - i + 1): Exit For End Select Next i End Function 
Interesting Posts

Два условных правила форматирования

Если это значение найдено в диапазоне, то используйте значение рядом с результатом диапазона

Подавление диалогового окна «Excel перестало работать»

Ячейки с формулами не оцениваются в Excel 2010

Excel изменяется в зависимости от содержимого ячейки

PHP не удается открыть книгу Excel через COM

возможно ли реализовать операции экспорта на стороне сервера JQuery Datatable ajax (PDF, EXCEL, CSV)?

Восстановить файлы, которые были открыты на диске USB после его удаления.

Чтение Excel дает java.lang.StringIndexOutOfBoundsException

Функция, возвращающая значения после подтверждения даты в диапазоне дат

Как использовать имя листа в формуле

Исключение Biff в Java

Разделение разделенных столбцов столбцов на один столбец, соответствующий родительскому столбцу?

Консолидация, объединение и сумма значений в vba

Как я могу извлечь значение точки данных из всплывающих подсказок графика рассеяния?

Давайте будем гением компьютера.