Excel-formel: Delt tekst og tall -

Innholdsfortegnelse

Generisk formel

=MIN(FIND((0,1,2,3,4,5,6,7,8,9),A1&"0123456789"))

Sammendrag

For å skille tekst og tall kan du bruke en formel basert på FINN-funksjonen, MIN-funksjonen og LEN-funksjonen med VENSTRE eller HØYRE-funksjonen, avhengig av om du vil trekke ut teksten eller tallet. I eksemplet vist er formelen i C5:

=MIN(FIND((0,1,2,3,4,5,6,7,8,9),B5&"0123456789"))

som returnerer 7, posisjonen til tallet 3 i strengen "epler30".

Forklaring

Oversikt

Formelen ser kompleks ut, men mekanikken er faktisk ganske enkel.

Som med de fleste formler som deler eller trekker ut tekst, er nøkkelen å finne posisjonen til tingen du leter etter. Når du har fått stillingen, kan du bruke andre funksjoner til å trekke ut det du trenger.

I dette tilfellet antar vi at tall og tekst er kombinert, og at tallet vises etter teksten. Fra den originale teksten, som vises i en celle, vil du dele teksten og tallene i separate celler, slik:

Opprinnelig Tekst Antall
Epler30 Epler 30
fersken24 ferskener 24
appelsiner12 appelsiner 12
fersken0 ferskener 0

Som nevnt ovenfor er nøkkelen i dette tilfellet å finne startposisjonen til nummeret, som du kan gjøre med en formel som denne:

=MIN(FIND((0,1,2,3,4,5,6,7,8,9),A1&"0123456789"))

Når du har posisjonen, for å trekke ut bare teksten, bruk:

=LEFT(A1,position-1)

Og for å trekke ut bare tallet, bruk:

=RIGHT(A1,LEN(A1)-position+1)

I den første formelen ovenfor bruker vi FINN-funksjonen til å finne startposisjonen til nummeret. For find_text bruker vi matrisekonstanten (0,1,2,3,4,5,6,7,8,9), dette får FINN-funksjonen til å utføre et separat søk etter hver verdi i matrisekonstanten. Siden matrisekonstanten inneholder 10 tall, blir resultatet en matrise med 10 verdier. For eksempel, hvis originalteksten er "apples30" vil den resulterende matrisen være:

(8,10,11,7,13,14,15,16,17,18)

Hvert tall i denne matrisen representerer posisjonen til et element i matrisekonstanten i originalteksten.

Deretter returnerer MIN-funksjonen den minste verdien i listen, som tilsvarer posisjonen til det første tallet som vises i originalteksten. I hovedsak får FINN-funksjonen alle tallposisjoner, og MIN gir oss den første tallposisjonen: legg merke til at 7 er den minste verdien i matrisen, som tilsvarer posisjonen til nummeret 3 i originalteksten.

Du lurer kanskje på den merkelige konstruksjonen for inside_text i finn-funksjonen:

B5&"0123456789"

Denne delen av formelen sammenkobler alle mulige tall 0-9 med originalteksten i B5. Dessverre returnerer FIND ikke null når en verdi ikke blir funnet, så dette er bare en smart måte å unngå feil som kan oppstå når et tall ikke blir funnet.

I dette eksemplet, siden vi antar at tallet alltid vil vises som nummer to i originalteksten, fungerer det bra fordi MIN bare tvinger den minste eller første forekomst av et nummer som skal returneres. Så lenge et nummer vises i originalteksten, vil denne posisjonen bli returnert.

Hvis originalteksten ikke inneholder noen tall, returneres en "falsk" posisjon lik lengden på originalteksten + 1. Med denne falske posisjonen vil VENSTRE formel ovenfor fremdeles returnere teksten og HØYRE formel vil returnere en tom streng ("").

Gode ​​lenker

Formel av Rick Rothstein på Mr Excel

Interessante artikler...