Намиране и извличане на номер от низ - Excel и Google Sheets

Изтеглете Примерна работна книга

Изтеглете примерната работна книга

Този урок ще ще ви покаже как да намерите и извлечете число от текстов низ в Excel и Google Sheets.

Намерете и извлечете номер от низ

Понякога вашите данни могат да съдържат числа и текст и искате да извлечете числовите данни.

Ако числовата част е от дясната или от лявата страна на низа, сравнително лесно е да разделите номера и текста. Ако обаче числата са вътре в низа, т.е. между два текстови низа, ще трябва да използвате много по -сложна формула (показана по -долу).

TEXTJOIN - Извличане на числа в Excel 2016+

В Excel 2016 беше въведена функцията TEXTJOIN, която може да извлече числата от всяка точка на текстовия низ. Ето формулата:

1 = TEXTJOIN ("", TRUE, IFERROR ((MID (B3, ROW (INDIRECT ("1:" & LEN (B3)))), 1)*1), ""))

Нека да видим как работи тази формула.

Функциите ROW, INDIRECT и LEN връщат масив от числа, съответстващи на всеки знак във вашия буквено -цифров низ. В нашия случай „Monday01Day“ има 11 знака, така че след това функцията ROW ще върне масива {1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11}.

1 = TEXTJOIN ("", TRUE, IFERROR ((MID (B3, {1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11}, 1)*1), "")))

След това функцията MID извлича всеки знак от текстовия низ, създавайки масив, съдържащ вашия оригинален низ:

1 = TEXTJOIN ("", TRUE, IFERROR (({"M"; "o"; "n"; "d"; "a"; "y"; "0"; "1"; "D"; "a ";" y "}*1)," "))

Умножаването на всяка стойност в масива с 1 ще създаде масив, съдържащ грешки Ако символът на масива е текст:

1 = TEXTJOIN ("", TRUE, IFERROR (({#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!; 0; 1; #VALUE!;#VALUE!;#VALUE! !}), ""))

След това функцията IFERROR премахва стойностите на грешките:

1 = TEXTJOIN ("", TRUE, {""; ""; ""; ""; ""; ""; 0; 1; ""; ""; ""})

Оставяйки само функцията TEXTJOIN, която свързва останалите числа заедно.

Имайте предвид, че формулата ще ви даде всички цифрови знаци заедно от вашия низ. Например, ако вашият буквено -цифров низ е Monday01Day01, той ще ви даде 0101 в резултат.

Извличане на номера - преди Excel 2016

Преди Excel 2016 можете да използвате много по -сложен метод за извличане на числа от текст. Можете да използвате функцията FIND заедно с функциите IFERROR и MIN, за да определите както първата позиция на числовата част, така и първата позиция на текстовата част след числото. След това просто извличаме числовата част с функцията MID.

1 = MID (B3, MIN (IFERROR (FIND ({0,1,2,3,4,5,6,7,8,9}, B3), 999999999)), MIN (IFERROR (SEARCH ({"a" , "b", "c", "d", "e", "f", "g", "h", "I", "j", "k", "l", "m", " n "," o "," p "," q "," r "," s "," t "," u "," v "," w "," x "," y "," z " }, B3, MIN (IFERROR (FIND ({0,1,2,3,4,5,6,7,8,9}, B3), 999999999))), 999999999))-MIN (IFERROR (FIND (FIND ( {0,1,2,3,4,5,6,7,8,9}, B3), 999999999)))

Забележка: Това е формула от масив, трябва да въведете формулата, като натиснете CTRL + SHIFT + ENTER, вместо само ENTER.

Нека да видим стъпка по стъпка как работи тази формула.

Намерете номера на юмрука

Можем да използваме функцията FIND за намиране на началната позиция на номера.

1 = MIN (IFERROR (FIND ({1,2,3,4,5,6,7,8,9,0}, B3), 999999999))

За аргумента find_text на функцията FIND използваме константата на масива {0,1,2,3,4,5,6,7,8,9}, което кара функцията FIND да извърши отделно търсене за всяка стойност в константата на масива.

Аргументът within_text на функцията FIND в нашия случай е Monday01Day, в който 1 може да бъде намерен на позиция 8 и 0 на позиция 7, така че нашият масив с резултати ще бъде: {8,#VALUE,#VALUE,#VALUE, #VALUE, #VALUE, #VALUE, #VALUE, #VALUE, 7}.

Използвайки функцията IFERROR, ние заменяме грешките #VALUE с 999999999. След това просто търсим минимума в този масив и следователно получаваме мястото на първото число (7).

Моля, обърнете внимание, че горната формула е формула на масив, трябва да натиснете Ctrl+Shift+Enter, за да я задействате.

Намерете първия текстов знак след числото

Подобно на намирането на първото число в низа, ние използваме функцията FIND, за да определим къде текстът започва отново след числото, използвайки добре и аргумента start_num на функцията.

1 = MIN (IFERROR (FIND ({"a", "b", "c", "d", "e", "f", "g", "h", "I", "j", "k "," l "," m "," n "," o "," p "," q "," r "," s "," t "," u "," v "," w ", "x", "y", "z"}, B3, C3), 999999999))

Тази формула работи много подобно на предишната, използвана за намиране на първото число, само че ние използваме букви в нашата константа на масива и следователно числата причиняват грешки #VALUE. Моля, обърнете внимание, че започваме търсене само след позицията, определена за първото число (това ще бъде аргументът start_num), а не от началото на низа.

Не забравяйте да натиснете Ctrl+Shift+Enter, за да използвате горната формула.

Не остава нищо друго, освен да сглобите всичко това.

Извличане на номер от два текста

След като имаме началната позиция на числовата част и началото на текстовата част след това, просто използваме функцията MID, за да извлечем желаната цифрова част.

1 = MID (B3, C3, D3-C3)

Друг метод

Без да го обяснявате по -подробно, можете също да използвате сложната формула по -долу, за да получите номера от низа.

1 = SUMPRODUCT (MID (0 & B3, LARGE (INDEX (ISNUMBER (-MID (B3, ROW (INDIRECT) ("1:" & LEN (B3))), 1))**ROW (INDIRECT ("1:" & LEN (B3) )), 0), ROW (INDIRECT ("1:" & LEN (B3))))+1,1)*10^ROW (INDIRECT ("1:" & LEN (B3)))/10)

Моля, имайте предвид, че тази формула по -горе ще ви даде 0, когато в низа не е намерено число и че водещите нули ще бъдат пропуснати.

Намерете и извлечете номер от низ в текст в Google Таблици

Примерите, показани по -горе, работят по същия начин в Google Sheets, както и в Excel.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave