Excel-formel: Fjern siste ord -

Innholdsfortegnelse

Generisk formel

=MID(A1,1,FIND("~",SUBSTITUTE(A1," ","~",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))-1)

Sammendrag

For å fjerne det siste ordet fra en tekststreng, kan du bruke en formel basert på MID-funksjonen, med hjelp fra SUBSTITUTE, LENN og FINN. I eksemplet vist er formelen i celle B5:

=MID(B5,1,FIND("~",SUBSTITUTE(B5," ","~",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))))-1)

Forklaring

Denne formelen bruker MID-funksjonen til å fjerne det siste ordet fra en tekststreng. Hovedutfordringen er å finne ut hvor det siste ordet begynner.

Formelen er litt innviklet, men trinnene er enkle. Vi teller først hvor mange mellomrom som finnes i teksten ved bruk av LEN og SUBSTITUTE. Deretter bruker vi det noe uklare "instans" -argumentet i SUBSTITUTE-funksjonen til å erstatte den siste plassen med en tilde (~). Til slutt bruker vi FINN for å finne ut hvor tilde er, og MID-funksjonen for å forkaste alt etter tilde.

Når vi arbeider fra innsiden og ut, bruker vi funksjonene LEN og SUBSTITUTE for å telle hvor mange mellomrom som vises i det neste:

LEN(B5)-LEN(SUBSTITUTE(B5," ","")) // returns 6

For teksten i B5 returnerer dette 6. Denne siden forklarer denne delen av formelen mer detaljert. Dette forteller oss at vi vil klippe teksten til det 6. mellomromstegnet.

Merk: Hvis ord er atskilt med mer enn ett mellomrom, vil du først normalisere mellomrom med TRIM-funksjonen.

Nummeret 6 blir deretter plugget inn i en annen SUBSTITUT som "instansnummer":

SUBSTITUTE(B5," ","~",6) // insert tilde

Her erstatter vi den sjette forekomsten av et mellomrom ("") med en tilde (~). Etter at SUBSTITUTE kjører, returnerer den denne strengen:

"It's been seven hours and fifteen~days"

Merk: vi bruker en tilde (~) bare fordi det er en sjelden forekommende karakter. Du kan bruke hvilket som helst tegn du liker, så lenge det ikke vises i kildeteksten.

Deretter bruker vi FINN-funksjonen til å finne tilde:

FIND("~","It's been seven hours and fifteen~days")-1

FINN returnerer 34, siden tilde er det 34. tegnet. Vi trekker 1 fra dette tallet, fordi vi ikke vil inkludere den siste plassen i det endelige resultatet. Vi kan nå forenkle formelen til:

=MID(B5,1,33) // extract final text

MID-funksjonen returnerer deretter tegn 1-33:

"It's been seven hours and fifteen"

Med en tilpasset avgrensning

Den samme formelen kan brukes med en annen avgrenser. Hvis du for eksempel vil fjerne all tekst etter siste skråstrek "/", kan du bruke:

=MID(A1,1,FIND("~",SUBSTITUTE(A1,"/","~",LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))))-1)

Fjern de siste n ordene

Du kan tilpasse formelen for å fjerne de to siste ordene, de siste tre ordene osv. Den generelle formen er:

=MID(A1,1,FIND("~",SUBSTITUTE(A1,d,"~",LEN(A1)-LEN(SUBSTITUTE(A1,d,""))-(n-1)))-1)

hvor d er skilletegn, og n er antall ord som skal fjernes.

Interessante artikler...