Excel-formel: Dela nummer från måttenheter -

Innehållsförteckning

Generisk formel

=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

Sammanfattning

För att dela ett tal från ett enhetsvärde kan du använda en formel baserad på flera funktioner: MAX, ISNUMBER, VALUE och MID. I exemplet som visas är formeln i 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

Obs: dessa är en experimentell formel som använder en hårdkodad arraykonstant, som anges här för referens och kommentar. Endast testad tillfälligt, så var försiktig om du använder eller anpassar.

Förklaring

Ibland stöter du på data som blandar enheter direkt med siffror (dvs. 8 km, 12 v, 7,5 timmar). Tyvärr behandlar Excel siffrorna i detta format som text, och du kan inte utföra matematiska operationer på sådana värden.

För att dela ett tal från ett enhetsvärde måste du bestämma positionen för det sista numret. Om du lägger till 1 i den positionen har du början på enhetstexten. Denna formel använder detta koncept för att ta reda på var måttenheten börjar.

I exemplet som visas är formeln i 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

Denna formel använder MID-funktionen för att extrahera de första 9 värdena i B5, ett tecken åt gången. Resultatet är en array som denna:

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

Vi använder sedan VALUE-funktionen för att konvertera siffror i textformat till faktiska nummer. Resultatet är:

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

Vi kör denna array genom ISNUMBER för att få:

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

Multiplicera sedan det gånger en annan array med 9 nummer för att få:

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

Sedan använder vi MAX för att få det största värdet, vilket är positionen för det "sista numret".

Slutligen lägger vi till 1 i positionen för att få positionen "enhetsstart".

Slutligen använder vi denna position med standard VÄNSTER- och HÖGER-funktioner för att separera siffrorna från enheterna:

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

Observera att den hårdkodade talmatriskonstanten är ett hack för enkelhetens skull och endast hanterar råvärden på upp till 9 tecken.

Bra länkar

Inspiration från Rick Rothsteins formler på MrExcel

Intressanta artiklar...