Excel formel: Opdel tal fra måleenheder -

Indholdsfortegnelse

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

Resumé

For at opdele et tal fra en enhedsværdi kan du bruge en formel baseret på flere funktioner: MAX, ISNUMBER, VALUE og MID. I det viste eksempel er formlen 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

Bemærk: disse er en eksperimentel formel, der bruger en hårdkodet arraykonstant, der er angivet her til reference og kommentar. Testet kun afslappet, så pas på, hvis du bruger eller tilpasser dig.

Forklaring

Nogle gange støder du på data, der blander enheder direkte med tal (dvs. 8 km, 12 v, 7,5 timer). Desværre behandler Excel tallene i dette format som tekst, og du kan ikke udføre matematiske operationer på sådanne værdier.

For at opdele et tal fra en enhedsværdi skal du bestemme placeringen af ​​det sidste tal. Hvis du tilføjer 1 til denne position, har du starten på enhedsteksten. Denne formel bruger dette koncept til at finde ud af, hvor måleenheden begynder.

I det viste eksempel er formlen 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 formel bruger MID-funktionen til at udtrække de første 9 værdier i B5, et tegn ad gangen. Resultatet er en matrix som denne:

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

Vi bruger derefter VALUE-funktionen til at konvertere tal i tekstformat til faktiske tal. Resultatet er:

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

Vi kører denne matrix gennem ISNUMBER for at få:

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

Multiplicer derefter det gange en anden matrix med 9 tal for at få:

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

Derefter bruger vi MAX for at få den største værdi, som er placeringen af ​​det "sidste tal".

Endelig tilføjer vi 1 til positionen for at få "enhedens start" position.

Endelig bruger vi denne position med standard VENSTRE og HØJRE funktioner til at adskille numrene fra enhederne:

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

Bemærk, at den hårdkodede talarraykonstant er et hack for nemheds skyld og kun håndterer råværdier på op til 9 tegn i længden.

Gode ​​links

Inspiration fra Rick Rothsteins formler på MrExcel

Interessante artikler...