Excel-formel: Ta bort sista ord -

Innehållsförteckning

Generisk formel

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

Sammanfattning

För att ta bort det sista ordet från en textsträng kan du använda en formel baserad på MID-funktionen, med hjälp från SUBSTITUTE, LEN och FIND. I exemplet som visas är formeln i cell B5:

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

Förklaring

Denna formel använder MID-funktionen för att ta bort det sista ordet från en textsträng. Den största utmaningen är att ta reda på var det sista ordet börjar.

Formeln är lite invecklad, men stegen är enkla. Vi räknar först hur många mellanslag som finns i texten med LEN och SUBSTITUT. Därefter använder vi det något dunkla "instans" -argumentet i SUBSTITUTE-funktionen för att ersätta det sista utrymmet med en tilde (~). Slutligen använder vi HITTA för att ta reda på var tilde är och MID-funktionen för att kasta allt efter tilde.

När vi arbetar inifrån och ut använder vi LEN- och SUBSTITUTE-funktionerna för att räkna hur många mellanslag som visas i nästa:

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

För texten i B5 returnerar detta 6. Denna sida förklarar denna del av formeln mer detaljerat. Detta berättar för oss att vi vill klippa ut texten vid det sjätte mellanslagstecknet.

Obs! Om ord är åtskilda av mer än ett mellanslag, vill du först normalisera mellanslag med TRIM-funktionen.

Siffran 6 ansluts sedan till en annan SUBSTITUT som "instansnummer":

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

Här ersätter vi den sjätte instansen av ett mellanslag ("") med en tilde (~). Efter SUBSTITUTE körs returnerar den här strängen:

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

Obs! Vi använder en tilde (~) bara för att det är en sällan förekommande karaktär. Du kan använda vilken karaktär du vill, så länge den inte visas i källtexten.

Därefter använder vi funktionen HITTA för att hitta tilde:

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

HITTA returnerar 34, eftersom tilde är den 34: e karaktären. Vi subtraherar 1 från detta nummer, för vi vill inte inkludera det sista mellanslaget i slutresultatet. Vi kan nu förenkla formeln till:

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

MID-funktionen returnerar sedan tecken 1-33:

"It's been seven hours and fifteen"

Med en anpassad avgränsare

Samma formel kan användas med en annan avgränsare. Om du till exempel vill ta bort all text efter den sista snedstrecket "/" kan du använda:

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

Ta bort de sista orden

Du kan anpassa formeln för att ta bort de sista två orden, de tre sista orden etc. Den allmänna formen är:

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

där d är avgränsaren och n är antalet ord som ska tas bort.

Intressanta artiklar...