Excel-formel: Uddrag de sidste to ord fra celle -

Indholdsfortegnelse

Generisk formel

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

Resumé

For at udtrække de sidste to ord fra en celle kan du bruge en formel bygget med flere Excel-funktioner, herunder MID, FIND, SUBSTITUTE og LEN. I det viste eksempel er formlen i C5:

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

Forklaring

I kernen bruger denne formel MID-funktionen til at udtrække tegn, der starter ved det næstsidste mellemrum. MID-funktionen tager 3 argumenter: teksten at arbejde med, startpositionen og antallet af tegn, der skal ekstraheres.

Teksten kommer fra kolonne B, og antallet af tegn kan være et hvilket som helst stort tal, der sikrer, at de to sidste ord udvindes. Udfordringen er at bestemme startpositionen, der er lige efter det næstsidste rum. Det kloge arbejde udføres primært med SUBSTITUTE-funktionen, som har et valgfrit argument kaldet instansnummer. Denne funktion bruges til at erstatte det næstsidste mellemrum i teksten med tegnet "@", som derefter findes med FIND-funktionen.

Arbejdet indefra og ud viser uddraget nedenfor, hvor mange mellemrum der er i teksten i alt, hvorfra 1 trækkes fra.

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

I det viste eksempel er der 5 mellemrum i teksten, så koden ovenfor returnerer 4. Dette nummer føres ind i den ydre SUBSTITUTE-funktion som eksempelnummer:

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

Dette får SUBSTITUTE til at erstatte det fjerde mellemrumstegn med "@". Valget af @ er vilkårligt. Du kan bruge ethvert tegn, der ikke vises i den originale tekst.

Dernæst finder FIND tegnet "@" i teksten:

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

Resultatet af FIND er 17, hvortil 1 tilføjes for at få 18. Dette er startpositionen og går ind i MID-funktionen som det andet argument. For enkelheds skyld er antallet af tegn, der skal udtrækkes, hårdkodet som 100. Dette tal er vilkårligt og kan justeres, så det passer til situationen.

Uddrag sidste N ord fra celle

Denne formel kan generaliseres for at udtrække de sidste N-ord fra en celle ved at erstatte den hårdkodede 1 i eksemplet med (N-1). Derudover, hvis du udtrækker mange ord, vil du måske erstatte det hardkodede argument i MID, 100, med et større tal. For at garantere dig, at antallet er stort nok, kan du blot bruge LEN-funktionen som følger:

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

Interessante artikler...