Formula Excel: Împărțiți textul și numerele -

Cuprins

Formula generică

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

rezumat

Pentru a separa textul și numerele, puteți utiliza o formulă bazată pe funcția FIND, funcția MIN și funcția LEN cu funcția STÂNGA sau DREAPTA, în funcție de dacă doriți să extrageți textul sau numărul. În exemplul prezentat, formula din C5 este:

=MIN(FIND((0,1,2,3,4,5,6,7,8,9),B5&"0123456789"))

care returnează 7, poziția numărului 3 în șirul „mere30”.

Explicaţie

Prezentare generală

Formula pare complexă, dar mecanica este de fapt destul de simplă.

La fel ca în majoritatea formulelor care împart sau extrag textul, cheia este să localizați poziția lucrului pe care îl căutați. Odată ce ai poziția, poți folosi alte funcții pentru a extrage ceea ce ai nevoie.

În acest caz, presupunem că numerele și textul sunt combinate și că numărul apare după text. Din textul original, care apare într-o singură celulă, doriți să împărțiți textul și numerele în celule separate, astfel:

Original Text Număr
Mere30 Merele 30
piersici24 piersici 24
portocale12 portocale 12
piersici0 piersici 0

După cum sa menționat mai sus, cheia în acest caz este să localizați poziția inițială a numărului, pe care o puteți face cu o formulă de genul acesta:

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

Odată ce ai poziția, pentru a extrage doar textul, folosește:

=LEFT(A1,position-1)

Și, pentru a extrage doar numărul, utilizați:

=RIGHT(A1,LEN(A1)-position+1)

În prima formulă de mai sus, folosim funcția FIND pentru a localiza poziția inițială a numărului. Pentru find_text, folosim constanta matricei (0,1,2,3,4,5,6,7,8,9), ceea ce face ca funcția FIND să efectueze o căutare separată pentru fiecare valoare din constanta matricei. Deoarece constanta matricei conține 10 numere, rezultatul va fi o matrice cu 10 valori. De exemplu, dacă textul original este „mere30”, matricea rezultată va fi:

(8,10,11,7,13,14,15,16,17,18)

Fiecare număr din această matrice reprezintă poziția unui element din constanta matricei din textul original.

În continuare, funcția MIN returnează cea mai mică valoare din listă, care corespunde poziției din primul număr care apare în textul original. În esență, funcția FIND obține toate pozițiile numerice, iar MIN ne oferă prima poziție numerică: observați că 7 este cea mai mică valoare din matrice, care corespunde poziției numărului 3 din textul original.

S-ar putea să vă întrebați despre construcția ciudată pentru within_text în funcția de găsire:

B5&"0123456789"

Această parte a formulei concatenează fiecare număr posibil 0-9 cu textul original din B5. Din păcate, FIND nu returnează zero atunci când nu se găsește o valoare, deci acesta este doar un mod inteligent de a evita erorile care ar putea apărea atunci când un număr nu este găsit.

În acest exemplu, din moment ce presupunem că numărul va apărea întotdeauna al doilea în textul original, acesta funcționează bine, deoarece MIN forțează să fie returnată doar cea mai mică sau prima apariție a unui număr. Atâta timp cât un număr apare în textul original, poziția respectivă va fi returnată.

Dacă textul original nu conține niciun număr, o poziție „falsă” egală cu lungimea textului original + 1 va fi returnată. Cu această poziție falsă, formula STÂNGA de mai sus va returna în continuare textul și formula DREAPTA va returna un șir gol ("").

Legături bune

Formula de Rick Rothstein pe Mr. Excel

Articole interesante...