Excel képlet: Az utolsó szó eltávolítása -

Tartalomjegyzék

Általános képlet

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

Összegzés

Az utolsó szó eltávolításához a szöveges karakterláncból a MID függvényen alapuló képletet használhatja a SUBSTITUTE, LEN és FIND segítséggel. A bemutatott példában a B5 cellában szereplő képlet a következő:

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

Magyarázat

Ez a képlet a MID függvény segítségével távolítja el az utolsó szót egy szöveges karakterláncból. A fő kihívás az, hogy kitaláljuk, hol kezdődik az utolsó szó.

A képlet kissé összevissza, de a lépések egyszerűek. Először a LEN és a SUBSTITUTE használatával számoljuk meg, hogy hány szóköz létezik a szövegben. Ezután a SUBSTITUTE függvény kissé homályos "instance" argumentumát használjuk az utolsó szóköz helyettesítésére tilde-vel (~). Végül a FIND segítségével megtudhatjuk, hol van a tilde, és a MID funkcióval mindent elvetünk a tilde után.

Kívülről kifelé haladva a LEN és SUBSTITUTE függvényekkel számoljuk meg, hogy hány szóköz jelenik meg a következőben:

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

A B5-ös szöveg esetében ez a 6. értéket adja vissza. Ez az oldal részletesebben elmagyarázza a képlet ezen részét. Ez azt mondja nekünk, hogy a szöveget a 6. szóköznél akarjuk elvágni.

Megjegyzés: ha a szavakat több szóköz választja el, akkor először a szóközöket kell normalizálni a TRIM funkcióval.

A 6-os számot ezután egy másik SUBSTITUTE-hez csatlakoztatjuk "példányszámként":

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

Itt egy tér ("") 6. példányát tildével (~) cseréljük le. A SUBSTITUTE futtatása után a következő karakterláncot adja vissza:

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

Megjegyzés: csak azért használunk tildét (~), mert ez ritkán előforduló karakter. Bármelyik karaktert használhatja, ha tetszik, ha nem jelenik meg a forrásszövegben.

Ezután a FIND függvény segítségével keressük meg a tildét:

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

A FIND 34-et ad vissza, mivel a tilde a 34. karakter. Ebből a számból kivonunk 1-et, mert nem akarjuk az utolsó szóközt beilleszteni a végeredménybe. Most egyszerűsíthetjük a képletet:

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

A MID függvény ezután visszaadja az 1-33 karaktereket:

"It's been seven hours and fifteen"

Egyéni határolóval

Ugyanaz a képlet használható más határolóval. Például az "/" utolsó előtolt perjel után az összes szöveg eltávolításához használhatja:

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

Távolítsa el az utolsó n szót

A képletet úgy módosíthatja, hogy eltávolítsa az utolsó 2 szót, az utolsó 3 szót stb. Az általános forma:

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

ahol d a határoló, és n az eltávolítandó szavak száma.

érdekes cikkek...