Excel-formel: Del tall fra måleenheter -

Innholdsfortegnelse

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

Sammendrag

For å dele et tall fra en enhetsverdi, kan du bruke en formel basert på flere funksjoner: MAX, ISNUMBER, VALUE og MID. I eksemplet vist er formelen 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

Merk: dette er en eksperimentell formel som bruker en hardkodet matrisekonstant, satt her for referanse og kommentar. Bare testet tilfeldig, så vær forsiktig hvis du bruker eller tilpasser deg.

Forklaring

Noen ganger støter du på data som blander enheter direkte med tall (dvs. 8 km, 12 v, 7,5 timer). Dessverre vil Excel behandle tallene i dette formatet som tekst, og du vil ikke kunne utføre matematiske operasjoner på slike verdier.

For å dele et tall fra en enhetsverdi, må du bestemme plasseringen til det siste tallet. Hvis du legger til 1 i den posisjonen, har du starten på enhetsteksten. Denne formelen bruker dette konseptet for å finne ut hvor måleenheten begynner.

I eksemplet vist er formelen 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

Denne formelen bruker MID-funksjonen til å trekke ut de første 9 verdiene i B5, ett tegn om gangen. Resultatet er en matrise som dette:

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

Vi bruker deretter VALUE-funksjonen til å konvertere tall i tekstformat til faktiske tall. Resultatet er:

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

Vi kjører denne matrisen gjennom ISNUMBER for å få:

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

Multipliser deretter det ganger en annen matrise med 9 tall for å få:

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

Deretter bruker vi MAX for å få den største verdien, som er posisjonen til "siste nummer".

Til slutt legger vi 1 til posisjonen for å få posisjonen "enhetens start".

Til slutt bruker vi denne posisjonen med standard VENSTRE og HØYRE funksjoner for å skille tallene fra enhetene:

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

Merk at den hardkodede tallmatrisekonstanten er et hack for enkelhets skyld, og vil bare håndtere råverdier på opptil 9 tegn.

Gode ​​lenker

Inspirasjon fra Rick Rothsteins formler på MrExcel

Interessante artikler...