Formula Excel: împarte numerele din unități de măsură -

Cuprins

Formula generică

=MAX(ISNUMBER(VALUE(MID(A1,(1,2,3,4,5,6,7,8,9),1)))*(1,2,3,4,5,6,7,8,9))+1

rezumat

Pentru a împărți un număr dintr-o valoare unitate, puteți utiliza o formulă bazată pe mai multe funcții: MAX, ISNUMBER, VALUE și MID. În exemplul prezentat, formula din C5 este:

=MAX(ISNUMBER(VALUE(MID(B5,(1,2,3,4,5,6,7,8,9),1)))*(1,2,3,4,5,6,7,8,9))+1

Notă: aceasta este o formulă experimentală care folosește o constantă de matrice codificată, stabilită aici pentru referință și comentariu. Testat doar la întâmplare, deci aveți grijă dacă utilizați sau vă adaptați.

Explicaţie

Uneori întâlnești date care amestecă unitățile direct cu numerele (adică 8 km, 12 v, 7,5 ore). Din păcate, Excel va trata numerele în acest format ca text și nu veți putea efectua operații matematice pe astfel de valori.

Pentru a împărți un număr dintr-o valoare unitară, trebuie să determinați poziția ultimului număr. Dacă adăugați 1 la poziția respectivă, aveți începutul textului unității. Această formulă folosește acest concept pentru a afla de unde începe unitatea de măsură.

În exemplul prezentat, formula din C5 este:

=MAX(ISNUMBER(VALUE(MID(B5,(1,2,3,4,5,6,7,8,9),1)))*(1,2,3,4,5,6,7,8,9))+1

Această formulă folosește funcția MID pentru a extrage primele 9 valori din B5, câte un caracter odată. Rezultatul este o matrice ca aceasta:

("8","0","v","","","","","","")

Apoi folosim funcția VALUE pentru a converti numerele în format text în numere reale. Rezultatul este:

(8,0,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!)

Rulăm această matrice prin ISNUMBER pentru a obține:

(TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE)

Apoi înmulțiți de aceea o altă matrice cu 9 numere pentru a obține:

(1,2,0,0,0,0,0,0,0)

Apoi folosim MAX pentru a obține cea mai mare valoare, care este poziția „ultimului număr”.

În cele din urmă, adăugăm 1 la poziția pentru a obține poziția "unitate de pornire".

În cele din urmă, folosim această poziție cu funcțiile standard STÂNGA și DREAPTA pentru a separa numerele de unități:

=VALUE(LEFT(B5,C5-1)) // number =TRIM(RIGHT(B5,LEN(B5)-C5+1)) // unit

Rețineți că constanta matricei numerice codificate este un hack pentru comoditate și va gestiona doar valori brute de până la 9 caractere în lungime.

Legături bune

Inspirație din formulele lui Rick Rothstein despre MrExcel

Articole interesante...