Hivatkozott Excel verzio:
2024 januárjában készítettem egy oktatóanyagot az Excel szöveg darabolást segítő függvényeiről. Abból is ki lehet mazsolázni, hogy hogyan kell egy szövegből egy bizonyos karakter utolsó előfordulása utáni szöveget kiszedni. De azóta találtam egy olyan képletet, amelyik minden Excel verzióban működik és sokkal egyszerűbb, ezért gondoltam, hogy ezt külön bemutatom.
Ha már itt vagyunk akkor természetesen egy újabb függvénnyel is megnézzük a megoldást, de az csak 2022 utáni Excel verziókkal fog működni.
Lássunk egy példát
Elég gyakori hogy egy fájl útvonalból kell kiszedni a fájl nevét a végéről, mint például ez az útvonal.
C:\Documents\Excel_Bazis\Tutorials\tananyag.xlsx
Azt nem tudjuk előre, hogy hány „backslash” lesz az útvonalban, csak azt tudjuk, hogy az utolsót szeretnénk megtalálni. és az utána lévő szöveget szeretnénk visszakapni.
Minden Excel verzióban működő képlet
=KIMETSZ(JOBB(HELYETTE(B7;"\";SOKSZOR(" ";100));100))
=TRIM(RIGHT(SUBSTITUTE(B7;"\";REPT(" ";100));100))
Az útvonal a B7-ben van, a képletet pedig a C7-be vagy bárhová írhatjuk.
Magyarázat
Nagyon ötletes a megoldás, érdemes lépésenként nézni, azaz haladjunk bentről kifelé:
- A SOKSZOR (REPT) függvény az első paraméterben megadott szöveget vagy karaktert megismétli a második paraméret szerinti mennyiségben. Jelen esetben száz darab szóköz keletkezik.
- Az eredeti útvonalban a backslash minden előfordulását, tehát az utolsót is kicseréli erre a 100 szóközre. Tehát az eredeti útvonal vége kb. így fog kinézni:
- ” tananyag.xlsx”
- Ennek a jobb oldaláról kiveszünk 100 karaktert. Ez tartalmazni fogja a fájlnevet és előtte annyi szóközt, amennyivel együtt 100 karakter lesz.
- A KIMETSZ (TRIM) függvénnyel már csak le kell szedni a szóközöket, és kész is vagyunk.
Miért épp 100?
A 100 helyére írható bármekkora szám, kisebb is akár. A lényeg, hogy nagyobb legyen annál, mint amilyen hosszú szöveg előfordulhat az utolsó backslash után.
Újabb Excel verziókban működő képlet
A 2024 utáni dobozos verziókban, illetve a 365-ben már megtalálható a SZÖVEGUTÁNA (TEXTAFTER) függvény. Ezzel jelentősen egyszerűbben és érthetőbben, valószínűleg gyorsabban is meg lehet oldani ezt a problémát:
=SZÖVEGUTÁNA(B7;"\";-1)
=TEXTAFTER(B7;"\";-1)
A képletben a -1 azt jelenti, hogy a megadott karaktert (backslash) hátulról kezdje el keresni, és az első találat utáni szöveget vegye ki. Azért ez sokkal egyszerűbb nem?
Lássuk a videót további példákkal
Az ilyen ötletes megoldások miatt tetszett meg az excel. Gratulálok!