
Á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.