Excel-formel: Fjern sidste ord -

Indholdsfortegnelse

Generisk formel

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

Resumé

For at fjerne det sidste ord fra en tekststreng kan du bruge en formel baseret på MID-funktionen med hjælp fra SUBSTITUTE, LENN og FIND. I det viste eksempel er formlen i celle B5:

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

Forklaring

Denne formel bruger MID-funktionen til at fjerne det sidste ord fra en tekststreng. Den største udfordring er at finde ud af, hvor det sidste ord begynder.

Formlen er lidt indviklet, men trinnene er enkle. Vi tæller først, hvor mange mellemrum der findes i teksten ved hjælp af LEN og SUBSTITUT. Dernæst bruger vi det noget uklare "instans" -argument i SUBSTITUTE-funktionen til at erstatte det sidste mellemrum med en tilde (~). Endelig bruger vi FIND til at finde ud af, hvor tilde er, og MID-funktionen til at kassere alt efter tilde.

Når vi arbejder indefra og ud, bruger vi LEN- og SUBSTITUTE-funktionerne til at tælle, hvor mange mellemrum der vises i det næste:

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

For teksten i B5 returnerer dette 6. Denne side forklarer denne del af formlen mere detaljeret. Dette fortæller os, at vi vil klippe teksten til det 6. mellemrumstegn.

Bemærk: Hvis ord er adskilt af mere end et mellemrum, skal du først normalisere mellemrum med TRIM-funktionen.

Nummeret 6 tilsluttes derefter til en anden SUBSTITUT som "instansnummer":

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

Her erstatter vi den 6. forekomst af et mellemrum ("") med en tilde (~). Når SUBSTITUTE kører, returnerer den denne streng:

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

Bemærk: Vi bruger kun en tilde (~), fordi det er en sjældent forekommende karakter. Du kan bruge et hvilket som helst tegn, du kan lide, så længe det ikke vises i kildeteksten.

Dernæst bruger vi FIND-funktionen til at finde tilde:

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

FIND returnerer 34, da tilde er det 34. tegn. Vi trækker 1 fra dette tal, fordi vi ikke ønsker at medtage det sidste mellemrum i det endelige resultat. Vi kan nu forenkle formlen til:

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

MID-funktionen returnerer derefter tegn 1-33:

"It's been seven hours and fifteen"

Med en brugerdefineret afgrænser

Den samme formel kan bruges med en anden afgrænser. Hvis du f.eks. Vil fjerne al tekst efter det sidste skråstreg "/", kan du bruge:

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

Fjern de sidste n ord

Du kan tilpasse formlen for at fjerne de sidste 2 ord, sidste 3 ord osv. Den generelle form er:

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

hvor d er afgrænseren, og n er antallet af ord, der skal fjernes.

Interessante artikler...