
Všeobecný vzorec
=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
Zhrnutie
Ak chcete rozdeliť číslo z jednotkovej hodnoty, môžete použiť vzorec založený na niekoľkých funkciách: MAX, ISNUMBER, VALUE a MID. V zobrazenom príklade je vzorec v C5:
=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
Poznámka: toto je experimentálny vzorec, ktorý používa pevnú konštantu poľa, tu nastavenú ako referencia a komentár. Iba príležitostne testované, takže buďte opatrní, ak ich používate alebo sa prispôsobujete.
Vysvetlenie
Niekedy sa stretnete s dátami, ktoré zmiešavajú jednotky priamo s číslami (tj. 8 km, 12 V, 7,5 hodiny). Excel bude, bohužiaľ, považovať čísla v tomto formáte za text a pri týchto hodnotách nebudete môcť vykonávať matematické operácie.
Ak chcete číslo rozdeliť z jednotkovej hodnoty, musíte určiť pozíciu posledného čísla. Ak na túto pozíciu pridáte 1, máte začiatok textu jednotky. Tento vzorec používa tento koncept na zistenie, kde začína merná jednotka.
V zobrazenom príklade je vzorec v C5:
=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
Tento vzorec využíva funkciu MID na extrahovanie prvých 9 hodnôt v B5, po jednom znaku. Výsledkom je pole ako je toto:
("8","0","v","","","","","","")
Potom pomocou funkcie HODNOTA prevedieme čísla v textovom formáte na skutočné čísla. Výsledkom je:
(8,0,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!)
Toto pole sme spustili cez ISNUMBER, aby sme získali:
(TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE)
Potom vynásobte tenkrát ďalšie pole s 9 číslami, aby ste získali:
(1,2,0,0,0,0,0,0,0)
Potom pomocou MAX dostaneme najväčšiu hodnotu, čo je pozícia „posledného čísla“.
Nakoniec do pozície pridáme 1, aby sme získali pozíciu „začatie jednotky“.
Nakoniec túto pozíciu použijeme so štandardnými funkciami LEFT a RIGHT na oddelenie čísel od jednotiek:
=VALUE(LEFT(B5,C5-1)) // number =TRIM(RIGHT(B5,LEN(B5)-C5+1)) // unit
Pamätajte, že konštanta číselného poľa s pevným kódom je z praktického hľadiska hackerom a zvládne iba nespracované hodnoty do dĺžky 9 znakov.