Excel-formel: Trekk ut de to siste ordene fra celle -

Innholdsfortegnelse

Generisk formel

=MID(A1,FIND("@",SUBSTITUTE(A1," ","@",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-1))+1,100)

Sammendrag

For å trekke ut de to siste ordene fra en celle, kan du bruke en formel bygget med flere Excel-funksjoner, inkludert MID, FINN, SUBSTITUTE og LENN. I eksemplet vist er formelen i C5:

=MID(B5,FIND("@",SUBSTITUTE(B5," ","@",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))-1))+1,100)

Forklaring

I kjernen bruker denne formelen MID-funksjonen til å trekke ut tegn som begynner på den nest siste plassen. MID-funksjonen tar 3 argumenter: teksten du skal jobbe med, startposisjonen og antall tegn som skal trekkes ut.

Teksten kommer fra kolonne B, og antall tegn kan være et hvilket som helst stort tall som vil sikre at de to siste ordene blir hentet ut. Utfordringen er å bestemme startposisjonen, som er like etter den nest siste plassen. Det smarte arbeidet gjøres først og fremst med SUBSTITUTE-funksjonen, som har et valgfritt argument kalt instansnummer. Denne funksjonen brukes til å erstatte den nest siste plassen i teksten med "@" -tegnet, som deretter ligger med FINN-funksjonen.

Arbeidet fra innsiden og ut, og snutten nedenfor viser hvor mange mellomrom det er i teksten totalt, hvorfra 1 trekkes fra.

LEN(B5)-LEN(SUBSTITUTE(B5," ",""))-1

I eksemplet som vises er det fem mellomrom i teksten, så koden ovenfor returnerer 4. Dette tallet mates inn i den ytre SUBSTITUTE-funksjonen som eksempelnummer:

SUBSTITUTE(B5," ","@",4)

Dette får SUBSTITUTE til å erstatte det fjerde mellomromstegnet med "@". Valget av @ er vilkårlig. Du kan bruke hvilket som helst tegn som ikke vises i originalteksten.

Deretter finner FIND "@" -tegnet i teksten:

FIND("@","A stitch in time@saves nine")

Resultatet av FINN er 17, som 1 legges til for å få 18. Dette er startposisjonen, og går inn i MID-funksjonen som det andre argumentet. For enkelhets skyld er antallet tegn som skal trekkes ut hardkodet som 100. Dette tallet er vilkårlig og kan justeres for å passe situasjonen.

Pakk ut siste N ord fra celle

Denne formelen kan generaliseres for å trekke ut de siste N-ordene fra en celle ved å erstatte den hardkodede 1 i eksemplet med (N-1). I tillegg, hvis du trekker ut mange ord, vil du kanskje erstatte det hardkodede argumentet i MID, 100, med et større tall. For å garantere deg at tallet er stort nok, kan du bare bruke LEN-funksjonen som følger:

=MID(B5,FIND("@",SUBSTITUTE(B5," ","@",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))-(N-1)))+1,LEN(B5))

Interessante artikler...