Вилучення чисел з рядка в Excel


0

Я маю стовпець у excel, який виглядає так:

Census Tract 2941.10 (part), Carson city, Compton CCD, Los Angeles County, California
Census Tract 5410.02, Carson city, Compton CCD, Los Angeles County, California
Census Tract 5431 (part), Carson city, Compton CCD, Los Angeles County, California
Census Tract 5432.02 (part), Carson city, Compton CCD, Los Angeles County, California
Census Tract 5433.04, Carson city, Compton CCD, Los Angeles County, California

Мені потрібно витягти 2941.10, 5410.02, 5431 тощо ... Я спробував наступну формулу: =MID(E4,MATCH(TRUE,ISNUMBER(1*MID(E4,ROW($3:$606),1)),0),COUNT(1*MID(E4,ROW($3:$606),1)))

Тим не менш, десяткове число в середині числа робить його таким чином, останні два числа відсічені. Не всі числа мають десяткове число, а кількість тексту після числа змінюється за рядком (тому ліва та права формули не є опціями). Я повинен використовувати формулу Excel, а не VBA / макроси.

Будь-які пропозиції?


Використовуйте "Текст до стовпців"
Hannu

Відповіді:


2

використовуй це:

=--TRIM(SUBSTITUTE(MID(SUBSTITUTE(A1," ",REPT(" ",999)),2*999,999),",",""))

enter image description here


Вищенаведена формула передбачає, що числа завжди є третім "словом" у тексті. Якщо це не так І є лише одна група чисел на рядок, можна використовувати цю формулу масиву:

=SUM(IFERROR(--TRIM(SUBSTITUTE(MID(SUBSTITUTE(A1," ",REPT(" ",999)),(ROW(INDIRECT("1:" & LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))-1)*999+1,999),",","")),0))

Будучи формулою масиву, його потрібно підтвердити за допомогою Ctrl-Shift-Enter, а не Enter при виході з режиму редагування. Якщо все зроблено правильно, Excel помістить {} навколо формули.

Він перебирає слова і повертає суму всієї групи чисел, і оскільки є тільки одна група чисел, вона повертає саме це.

enter image description here


0

EDIT: Я видалив свою першу відповідь, оскільки я розумію, що ви, ймовірно, хочете повернути рядок цифр, у тому числі провідні або кінцеві 0, і принаймні можливо, що рядок цифр може бути більше 15 цифр.

Отже, формула нижче повертає число як текстовий рядок, зберігаючи будь-які нульові значення. напр 2941.10 повертається як така, а не як 2941.1

Ось одне рішення формули

Спочатку визначте seq як названа формула:

seq Refers To:  =ROW(INDEX($1:$65535,1,1):INDEX($1:$65535,255,1))

seq поверне масив чисел {1...255} На відміну від ROW(INDIRECT(... Методом повернення масивів ця формула є енергонезалежною.

Потім ви можете використовувати цю формулу масиву, введену шляхом утримання ctrl + shift під час удару введіть

=MID(A1,MATCH(TRUE,ISNUMBER(-MID(A1,seq,1)),0),LOOKUP(2,1/ISNUMBER(-MID(A1,seq,1)),seq)-MATCH(TRUE,ISNUMBER(-MID(A1,seq,1)),0)+1)

або, ви можете використовувати цю трохи довшу, але звичайно введену формулу:

=MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&"0123456789")),LOOKUP(2,1/ISNUMBER(-MID(A1,seq,1)),seq)-MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&"0123456789"))+1)

Якщо це випадок, як у вашому прикладі, то цифра послідовність завжди починається на 14-й позиції, потім можна використовувати цю спрощену, зазвичай введену формулу:

=MID(A1,14,LOOKUP(2,1/ISNUMBER(-MID(A1,seq,1)),seq)-13)

enter image description here

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.