Formula Excel: eliminați caractere nenumerice -

Formula generică

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

rezumat

Pentru a elimina caractere nenumerice dintr-un șir de text, puteți încerca această formulă experimentală bazată pe funcția TEXTJOIN, o nouă funcție în Excel 2019. În exemplul prezentat, formula din C5 este:

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

Notă: aceasta este o formulă matrice și trebuie introdusă cu control + shift + enter.

Explicaţie

Funcționând din interior spre exterior, formula MID este utilizată pentru a extrage textul din B5, câte un caracter odată. Cheia este piesa ROW / INDIRECT:

ROW(INDIRECT("1:100"))

care învârte o matrice care conține 100 de numere ca aceasta:

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

Notă: 100 reprezintă maximum de caractere de procesat. Schimbați în funcție de datele dvs.

Această matrice intră în funcția MID ca argument start_num . Pentru num_chars , folosim 1.

Funcția MID returnează o matrice ca aceasta:

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

(elemente suplimentare din matrice eliminate pentru lizibilitate)

La această matrice, adăugăm zero. Acesta este un truc simplu care forțează Excel să încerce să constrângă textul către un număr. Valorile textului numeric precum „1”, „2”, „3”, „4” etc. sunt convertite, în timp ce valorile nenumerice eșuează și generează o eroare #VALUE. Folosim funcția IFERROR pentru a prinde aceste erori și a returna un șir gol (""), în timp ce valorile numerice trec în matrice. Rezultatul este un tablou care conține doar numere și șiruri goale:

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

În cele din urmă, acest rezultat matrice merge în funcția de TEXTJOIN ca text1 argument. Pentru delimitator , folosim un șir gol (""), iar pentru ignore_empty furnizăm TRUE. TEXTJOIN apoi concatenează toate valorile ne-goale din matrice și returnează rezultatul.

Notă: TEXTJOIN va returna numerele ca text, de exemplu „100”, „500” etc. Dacă doriți un rezultat numeric adevărat, adăugați zero sau înfășurați întreaga formulă în funcția VALUE.

Articole interesante...