
Obecný 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
souhrn
Chcete-li rozdělit číslo z hodnoty jednotky, můžete použít vzorec založený na několika funkcích: MAX, ISNUMBER, VALUE a MID. V zobrazeném příkladu 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: jedná se o experimentální vzorec, který používá pevně konstantní maticovou konstantu, zde nastavenou pro referenci a komentář. Pouze příležitostně testováno, takže buďte opatrní, pokud používáte nebo se přizpůsobujete.
Vysvětlení
Někdy se setkáte s daty, která přímo mísí jednotky s čísly (tj. 8 km, 12 V, 7,5 hodiny). Excel bude bohužel s čísly v tomto formátu zacházet jako s textem a nebudete moci s těmito hodnotami provádět matematické operace.
Chcete-li rozdělit číslo z jednotkové hodnoty, musíte určit pozici posledního čísla. Pokud na tuto pozici přidáte 1, máte začátek textu jednotky. Tento vzorec používá tento koncept k určení, kde začíná měrná jednotka.
V zobrazeném příkladu 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 používá funkci MID k extrakci prvních 9 hodnot v B5, jeden znak po druhém. Výsledkem je pole jako toto:
("8","0","v","","","","","","")
Poté použijeme funkci HODNOTA k převodu čísel v textovém formátu na skutečná čísla. Výsledek je:
(8,0,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!)
Spustili jsme toto pole do ISNUMBER, abychom získali:
(TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE)
Pak vynásobte tenkrát další pole s 9 čísly, abyste získali:
(1,2,0,0,0,0,0,0,0)
Potom použijeme MAX k získání největší hodnoty, což je pozice „posledního čísla“.
Nakonec přidáme 1 do pozice, abychom získali pozici „spuštění jednotky“.
Nakonec použijeme tuto pozici se standardními funkcemi LEFT a RIGHT k oddělení čísel od jednotek:
=VALUE(LEFT(B5,C5-1)) // number =TRIM(RIGHT(B5,LEN(B5)-C5+1)) // unit
Všimněte si, že pevně konstantní číselná konstanta číselného pole je hack pro větší pohodlí a bude zpracovávat pouze nezpracované hodnoty do délky 9 znaků.