szövegkezelő függvények - egy
2025-11-07 Excel 2024
fogalmak
Induljunk el a kályhától! Az Excel egy táblázatos adatkezelő szoftver. Az adatkezelés fogalomkörébe tartozik az adatok rögzítése, tárolása, feldolgozása, elemzése, archiválása és törlése. És milyen típusú adatokkal tudunk az Excelben dolgozni? Szövegekkel, logikai értékekkel és különböző formátumú számokkal.
Akkor ebből az következik, hogy a szövegkezelő függvényekkel a szöveg adattípusú adatok feldolgozását végezhetjük el. Nem teljesen! Az elnevezés félrevezető!
A HOSSZ függvénnyel egy cellában álló karakterek számát, a BAL függvény pedig egy cella első karakterét kérdeztem le. Adattípustól függetlenül. Ha a cellában képlet áll, akkor a képlet eredményét elemezhetjük a függvényekkel. Tehát, ha az A3-as cellában az =120+3 képlet állna, akkor is a fenti eredményeket kapnánk.
Tehát, helyesebb lenne karakterlánc-kezelő függvényekről beszélnünk, vagy egyszerűen karakter-kezelő függvényekről. Utóbbi ráadásul még jól is hangzik!
Népes család! A feni ábrán ABC sorrendben, két oszlopban soroltam fel a tárgyalt, huszonnégy függvényt. A továbbiakban funkció szerint csoportosítva mutatom be a család tagjait.
karakterek kódolása
A magyar nyelvű Windows a karakterek kódolásához a Microsoft 1250-es, közép-európai kódlapját használja. Ez a kódlap az USA szabványos kódlapja (ASCII, ANSI), kiegészítve a közép-európai nyelvek speciális karaktereivel. A Windows operációs rendszer azonban fel van készítve az UNICODE rendszer karaktereinek fogadására is. Az UNICODE a számítógépes karakter-kódolás egységesített rendszere.
Két függvény-pár szolgál a karakterek kódszámának, illetve a kódszámhoz tartozó karakter lekérdezéséhez. Az 1250-es Microsoft kódlap alapján a KARAKTER-KÓD, az UNICODE kódlap alapján pedig a UNIKARAKTER-UNICODE függvény-párosokkal dolgozhatunk.
A függvények egyetlen argumentuma határozza meg a vizsgált számot, illetve a vizsgált karaktert. Ha a KÓD és az UNICODE argumentuma nem egyetlen karakter, hanem karakterlánc, akkor a karakterlánc első karakterének kódját kapjuk eredményül. A konstans karaktert az argumentumban idézőjelek között kell megadni, még akkor is, ha a karakter szám.
A kódolás függvényeinek gyakorlati jelentősége csekély, csak két feladat megoldásában játszanak fontos szerepet. Az első a sortörés deklarálása a képletben. Egy karakterlánc meghatározott pontján a 10-es kódú „vezérlő karakter”-rel határozhatunk meg sortörést.
Csak akkor érvényesül a deklarált sortörés, ha a cellában engedélyeztetjük a többsoros tartalmat (Cellaformázás, Igazítás, Sortöréssel több sorba). És ha a cella oszlopa kellően széles.
A másik feladat, amelynek megoldásában szerepet kap a KARAKTER függvény, a felesleges szóközök eltávolítása. Egyenlőre csak annyit rögzítsünk, hogy az 1250-es kódlap két szóközt tartalmaz: a 32-es kódú szóközt és a 160-as kódú, „nem törhető szóköz”-t.
két karakterlánc összehasonlítása
Ehhez a művelethez nem is kell függvény! Hiszen ez egy logikai művelet. De azért, vizsgáljuk csak meg egy kicsit közelebbről is!
Úgy látszik a logikai művelet hangzás útján :) állapítja meg az azonosságot! Mert, számítástechnikailag a kis „m” betű és a nagy „m” betű nem azonos. Az egyiknek a hetvenhetes a másiknak a százkilences a kódja. Tehát, számítástechnikailag, azaz a kis- és nagybetűket megkülönböztetve az AZONOS függvénnyel tudunk két karakterláncot összehasonlítani.
karakterláncok elemzése
Vagyis nem akarjuk feldolgozni a karakterláncot csak meg szeretnénk ismerni egy tulajdonságát. Például, hogy hány karakterből áll. A HOSSZ függvény eredménye az egyetlen argumentumával meghatározott karakterlánc karaktereinek darabszáma. A szóköz karaktereket is beleérte. Vagy mégse?
Ezek szerint a számok ezres csoportosítását szolgáló szóköz nem jelenik meg a HOSSZ eredményében. Hogy miért nem, azt a szerkesztőléc mutatja. Ez nem is szóköz, hanem a csoportok között megjelenített üres terület!
Megtalálható-e ez a karakterlánc (keresett karakterlánc) a vizsgált szövegben, és ha igen, akkor a vizsgált szöveg hányadik karakterétől kezdődően? Erre a kérdésre ad választ a SZÖVEG.KERES és a SZÖVEG.TALÁL függvények. Utóbbi megkülönbözteti a kis és nagybetűket, az előbbi nem. A két függvény argumentum-listája azonos: <keresendő karakterlánc>; <vizsgálandó szöveg>; <hányadik karaktertől kezdődjön a keresés>. A harmadik argumentum elhagyható.
Két furcsaságot figyelhetünk meg a fenti képen. Ha a keresett karakterlánc nem szerepel a vizsgált szövegben, akkor nem a #HIÁNYZIK-ot, hanem az #ÉRTÉK-et kapjuk eredményül! A SZÖVEG.TALÁL esetében is.
A másik furcsaságot a B3-as cella képletében figyelhetünk meg. Csak az ötödik karaktertől kezd a szöveg vizsgálatát! Ezt az utasítást adjuk a programnak a függvény harmadik argumentumával. Az esetleges találat kezdőpozícióját, azonban a függvény nem a vizsgált, hanem a teljes szöveg első karateréhez képest adja meg!
A SZÖVEG.KERES függvény keresett karakterlánc argumentumában joker karakterek (?, *) is állhatnak. Ha magát a kérdőjelet vagy a csillagot akarjuk kerestetni, akkor azt a hullámvonallal kell deklarálnunk: ~? vagy ~*.
karakterlánc egy szakaszának kinyerése
Vagy képzése. Hogy melyik függvényt kell használnunk, azt a kinyerni szándékozott szakasz pozíciója határozza meg. A szakasz állhat (1) a gazda-szöveg elején, (2) a gazda-szöveg belsejében (3) vagy a gazda-szöveg végén.
Ha a szakasz a gazda-szöveg elején áll, akkor a BAL vagy a SZÖVEGELÖTTE függvényekkel dolgozhatunk.
A feni képen a két igét szóközökkel közrefogott kötőjel választja el. A BAL függvény első argumentumával a gazda-szöveget, második argumentumával a kinyerni szándékozott szöveg-szakasz karakterszámát deklaráljuk. Természetesen mindkét argumentum kifejezés is lehet. A B2-es cella képletében a szakasz karakterszámát az első szóköz-karakter pozíciójából képeztem.
A SZÖVEGELŐTTE függvényt tagolt karakterláncok feldolgozásához használhatjuk. Első két argumentumával (a többiről később) a gazda-szöveget és a kinyerendő szakaszt követő tagoló karaktert, illetve karaktereket deklaráljuk. A második argumentumban én mindhárom tagoló karaktert megadtam, de természetesen elegendő lett volna egyetlen szóköz (” ”) is.
A KÖZÉP függvény argumentum-listája a következő: (1) a gazda-szöveg, (2) a kinyerendő szöveg-szakasz a gazda-szöveg hányadik karakterétől kezdődik (3) és a szakasz hány karakterből áll.
Van egy listánk (A oszlop), amelyben emberek azonosítói állnak. Elől áll a vezetéknevük, utána egy pont, azután egy szám, amely egy-, kettő- vagy háromkarakteres és végül a nemzetiségüket mutató három karakter. Az a feladatunk, hogy az azonosítókból kinyerjük a számokat.
Vizsgáljuk meg a B1-es cella képletét! A gazda-szöveg az A1-es cellában áll. Ez a KÖZÉP függvény első argumentuma. A függvény második argumentuma a kinyerendő szakasz első karakterének sorszáma a gazda-szövegben: a SZÖVEG.KERES függvénnyel megállapítottam a pont karakter pozícióját és ehhez adtam egyet. A harmadik argumentummal a szakasz karaktereinek darabszámát deklaráltam: a HOSSZ függvénnyel kiszámoltam a gazda-szöveg karaktereinek darabszámát, majd ebből levontam a pont pozícióját és a nemzetiség három karakterét. A pont pozíciója azonos a vezetéknév karaktereinek és a pont karakter-számának összegével.
A gazda-szöveg végén álló szöveg-szakaszt a JOBB, tagolt gazda-szöveg esetén a SZÖVEGUTÁNA függvénnyel képezhetjük.
A JOBB függvény két argumentuma a gazdaszöveg és a kinyerni szándékozott szakasz karakter-számának megadására szolgál. A SZÖVEGUTÁNA függvény első két argumentumával a gazda-szöveget és a tagoló karaktert deklaráljuk.
A BAl és a JOBB függvények második argumentuma elhagyható, ha nem adjuk meg, akkor a program a karakterszámot egynek (1) veszi.
szövegelötte és szövegutána függvények - részletesen
Ez a két függvény a 2024-es Excel verzióban jelent meg, tagolt szövegek kezelésének egyszerűsítésére. Számítástechnikai értelemben tagolt szöveg az a több részből álló karakterlánc, amelynek részeit meghatározott karakter vagy karakterlánc választja el egymástól. Az elválasztó elemeket „tagoló karakter”-nek illetve „tagoló karakterlánc”-nak nevezzük. A következő ábrán a tagolt szöveg sémáját látjuk. Két változatban.
A tagolt szövegek kezeléséhez négy függvényt biztosít a program: SZÖVEGELÖTTE, SZÖVEGUTÁNA, SZÖVEGÖSSZEFŰZÉS és SZÖVEGFELOSZTÁS. Utóbbi kettőről később mesélek.
A SZÖVEGELÖTTE és a SZÖVEGUTÁNA függvények a gazda-szöveg elején illetve végén álló szöveg-szakaszt adják eredményül. A szakasz végét (SZÖVEGELÖTTE) illetve a szakasz elejét (SZÖVEGUTÁNA) tagoló karakter határozza meg.
A két függvény argumentum-listája azonos. Első két argumentumuk kötelező. Az elsővel a gazda-szöveget, a másodikkal a tagoló karaktert, illetve tagoló karakterláncot kell deklarálnunk. Mi lehet ez a tagoló karakterlánc? Például, ” - ”, azaz <szóköz><kötőjel><szóköz> vagy ” és ”, azaz <szóköz><é><s><szóköz>. Magyarul, tagoló funkciót tetszőleges karakter, illetve tetszőleges karakterlánc betölthet.
A két függvény további argumentumai opcionálisak. Többszörösen tagolt gazda-szövegben deklarálnunk kell, hogy a függvény hányadik tagoló karakterrel dolgozzon. Erre szolgál a függvények harmadik argumentuma. Ha az argumentum nincs megadva, akkor a függvények az első tagoló karaktert veszik figyelembe.
Tehát, a tagoló karakterek sorszámozását a gazda-szöveg végétől is kezdhetjük. A fordított irányt negatív jellel deklaráljuk. De miért van szükség erre a szolgáltatásra? Mert változó tag-számú tagolt szövegből álló lista esetén így kérhetjük egyszerűen az utolsó tagot (-1), az utolsó két tagot(-2) és így tovább. Nézzünk egy példát!
Autóbusz járatok útvonalát tartalmazza a lista. Valahol csak az útvonal végpontjai szerepelnek, de van olyan útvonal is, ahol egy közbenső megálló is fel van tüntetve. A végállomásokat kellett kiíratnom.
Mindkét függvény megkülönbözteti a kis- és a nagybetűket. Ezt a működést a negyedik argumentummal szabályozhatjuk. Ha ki akarjuk kapcsolni a megkülönböztetést, akkor írjunk egy egyest (1) az argumentumba. Ha megfelelő a szokásos működés, akkor maradjon üresen az argumentum, illetve értéke legyen nulla (0).
A függvények ötödik, nem kötelező argumentumának egy (1) értékével egy virtuális tagoló karaktert illetve tagoló karakterláncot helyezhetünk el a gazda-szöveg után. Az üresen hagyott vagy nulla (0) értékű ötödik argumentum a szokásos működést biztosítja.
Ha a függvények nem találjuk a megadott sorszámú tagoló karaktert vagy tagoló karakterláncot, akkor a #HIÁNYZIK hibaértéket adják eredményül. A függvények hatodik argumentumával saját „hibaüzenetet” deklarálhatunk.
Ismételjük el a két függvény argumentum-listáját!
tagoló karakterekkel határolt szakasz kinyerése
A gazda-szöveg természetesen tagolt szöveg. A feladatot a SZÖVEGELÖTTE és a SZÖVEGUTÁNA függvényekkel fogjuk megoldani. A hagyományos szövegkezelő függvényekkel is eredményre jutnánk, csak sokkal bonyolultabb képlettel. A megoldás algoritmusa kétlépéses.
Lássunk egy feladatot is, a megoldással együtt!
„végső soron végső soron / erről szól minden verssorom - / mi másról szólhatna verssor, / vers a világ bár csak pár sor.” (Szilágyi Ákos)

margitfalvi.arpad@proton.me