Excel-formule: getallen splitsen uit maateenheden -

Inhoudsopgave

Generieke formule

=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

Samenvatting

Om een ​​getal van een eenheidswaarde te splitsen, kunt u een formule gebruiken die is gebaseerd op verschillende functies: MAX, ISNUMBER, WAARDE en MIDDEN. In het getoonde voorbeeld is de formule in 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

Opmerking: dit is een experimentele formule die een hard gecodeerde matrixconstante gebruikt, die hier ter referentie en commentaar is vastgelegd. Alleen terloops getest, dus pas op als u het gebruikt of aanpast.

Uitleg

Soms kom je gegevens tegen die eenheden direct met getallen combineren (bijv. 8km, 12v, 7,5 uur). Helaas behandelt Excel de getallen in deze indeling als tekst en kunt u geen wiskundige bewerkingen uitvoeren op dergelijke waarden.

Om een ​​getal van een eenheidswaarde te splitsen, moet u de positie van het laatste getal bepalen. Als je 1 bij die positie optelt, heb je het begin van de eenheidstekst. Deze formule gebruikt dit concept om erachter te komen waar de maateenheid begint.

In het getoonde voorbeeld is de formule in 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

Deze formule gebruikt de MID-functie om de eerste 9 waarden in B5 te extraheren, één teken per keer. Het resultaat is een array als deze:

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

Vervolgens gebruiken we de functie WAARDE om getallen in tekstformaat om te zetten in werkelijke getallen. Het resultaat is:

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

We gebruiken deze array via ISNUMBER om het volgende te krijgen:

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

Vermenigvuldig dat dan met een andere array met 9 getallen om het volgende te krijgen:

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

Vervolgens gebruiken we MAX om de grootste waarde te krijgen, de positie van het "laatste getal".

Ten slotte voegen we 1 toe aan de positie om de positie "unit start" te krijgen.

Ten slotte gebruiken we deze positie met de standaard LINKS- en RECHTS-functies om de cijfers van de eenheden te scheiden:

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

Merk op dat de hardgecodeerde nummerreeksconstante voor het gemak een hack is en alleen onbewerkte waarden van maximaal 9 tekens lang kan verwerken.

Goede links

Inspiratie uit de formules van Rick Rothstein op MrExcel

Interessante artikelen...