Формула Excel: удаление нечисловых символов -

Общая формула

(=TEXTJOIN("",TRUE,IFERROR(MID(A1,ROW(INDIRECT("1:100")),1)+0,"")))

Резюме

Чтобы удалить нечисловые символы из текстовой строки, вы можете попробовать эту экспериментальную формулу, основанную на функции TEXTJOIN, новой функции в Excel 2019. В показанном примере формула в C5 имеет следующий вид:

(=TEXTJOIN("",TRUE,IFERROR(MID(B5,ROW(INDIRECT("1:100")),1)+0,"")))

Примечание: это формула массива, и ее нужно вводить с помощью Ctrl + Shift + Enter.

Объяснение

Формула MID используется изнутри для извлечения текста в B5, по одному символу за раз. Ключ - это СТРОКА / КОСВЕННАЯ часть:

ROW(INDIRECT("1:100"))

который раскручивает массив, содержащий 100 таких чисел:

(1,2,3,4,5,6,7,8… .99,100)

Примечание: 100 представляет максимальное количество символов для обработки. Измените в соответствии с вашими данными.

Этот массив входит в функцию MID как аргумент start_num . Для num_chars мы используем 1.

Функция MID возвращает такой массив:

("1"; "0"; "0"; ""; "a"; "p"; "p"; "l"; "e"; "s"; ""; ""; ""; " «…)

(лишние элементы в массиве удалены для удобства чтения)

К этому массиву мы добавляем ноль. Это простой трюк, который заставляет Excel пытаться преобразовать текст в число. Числовые текстовые значения, такие как «1», «2», «3», «4» и т. Д., Преобразуются, в то время как нечисловые значения терпят неудачу и вызывают ошибку #VALUE. Мы используем функцию ЕСЛИОШИБКА, чтобы отловить эти ошибки и вернуть пустую строку (""), в то время как числовые значения передаются в массив. Результатом является массив, содержащий только числа и пустые строки:

(1; 0; 0; ""; ""; ""; ""; "";….)

Наконец, результат этого массива передается в функцию TEXTJOIN как аргумент text1 . В качестве разделителя мы используем пустую строку (""), а для ignore_empty мы указываем TRUE. Затем TEXTJOIN объединяет все непустые значения в массиве и возвращает результат.

Примечание. TEXTJOIN вернет числа в виде текста, например «100,« 500 »и т. Д. Если вы хотите получить истинный числовой результат, добавьте ноль или оберните всю формулу в функцию VALUE.

Интересные статьи...