szövegkezelő függvények - kettő
2025-09-13 Excel 2024
kisbetű-nagybetű átalakítás
A kisbetű-nagybetű átalakítást három függvény szolgálja, a KISBETŰ, a NAGYBETŰ és a TNÉV.
Tehát, a KISBETŰ függvény az argumentumával meghatározott karakterláncot adja eredményül, de az eredeti szöveg nagybetűit kisbetűre cserélve. A NAGYBETŰ pont fordítva, a kisbetűket nagybetűkre cserélve adja eredményül az argumentumával meghatározott karakterláncot. A TNÉV függvény az argumentumával meghatározott karakterláncot adja eredményül a következő átalakításokkal: (1) A karakterlánc minden nagybetűjét kisbetűre cseréli, kivéve a karakterlánc első karakterét és az összes szóköz után álló karaktert. (2) Ha ezek a kivételek kisbetűk, akkor nagybetűkre cseréli őket.
fölösleges szóközök törlése
Ha a szóköz tagoló funkciót tölt be, akkor két karakterlánc között elegendő csak egy belőle. A második, harmadik és a továbbiak fölöslegesek. És a karakterlánc előtt és a karakterlánc után állókra sincs szükségünk. Általában. Ha ilyen plusz-szóközös listát kapunk, akkor segít a KIMETSZ függvény.
Az A oszlop tartalmazza a plusz-szóközös listát. Ha minden optimális lenne, akkor minden tétel három számból, három betűből és egy tagoló szóközből állna. De egyik tétel sem hétkarakteres, ahogy a B oszlop értékei mutatják. Sebaj, majd a KIMETSZ függvénnyel előállítom az optimális állapotot a D oszlopban. De valami nincs rendben! Mintha néhány tétel szóközzel kezdődne. Így is van: ezt mutatja az ellenőrzés az E oszlopban.
Ezután megvizsgáltam a KÓD függvénnyel az első megtisztított tétel (D1) szóközeit. A tagoló karakter valóban szóköz, de a bevezető karakter is, csak éppen a nem törhető fajtából. Tanulság: a KIMETSZ függvény az argumentumával meghatározott karakterláncot a fölös 32-es kódú szóközöktől megtisztítva adja eredményül. Persze a felesleges nem törhető szóközöktől is meg tudunk szabadulni! Hogy hogyan, arra hamarosan visszatérünk.
vezérlő karakterek eltávolítása
Az Microsoft 1250-es közép-európai kódtáblájának első harmincegy eleme „vezérlő karakter”. Kicsit kifejtve: a hozzáértők ezekkel a karakterekkel tudják a számítógépet valamilyen művelet elvégzésére utasítani. A további karakterek a kódtáblában a „nyomtatható karakterek”. Ebből a kifejezésből ered a vezérlő karakterek másik elnevezése: „nem nyomtatható karakterek”. Egy vezérlő karaktert már megismertünk, a 10-es kódú „sortörés” karaktert, amellyel a képletben sortörést deklarálhatunk: KARAKTER(10). Más vezérlő karakter nem is igen fordul elő egy átlagos excel-képletben.
A C oszlop celláiban összeboronáltuk a szerelmeseket, sortörésekkel. Majd a D oszlopban másolatot készítettünk a C oszlop szövegeiről, de a másolatban töröltettük a vezérlő karaktereket a TISZTÍT függvénnyel. Az ábra azt is mutatja, hogy a TISZTÍT függvénnyel csak törölni tudjuk a vezérlő karaktereket, de nem tudjuk őket más karakterre cserélni! De egy másik függvénnyel...
karakterlánc létrehozása
Két függvényt biztosít a program szövegek egyesítésére a FŰZ-t és a SZÖVEGÖSSZEFŰZÉS-t. Utóbbival tagolt szöveget hozhatunk létre. Először vizsgáljuk meg a FŰZ működését!
A két képlet alapján megállapíthatjuk, hogy a FŰZ kényelmesebbé teszi a karakterláncok összefűzését: nem kell a szövegösszefűző operátor billentyűjét (&) százszor leütni. De tagolt szöveget nem tud csinálni. Azt csak a SZÖVEGÖSSZEFŰZÉS tud.
A FŰZ argumentumainak száma kettőszázötvennégy. A SZÖVEGÖSSZEFŰZÉS-é is annyi, de utóbbi első két argumentuma nem karakterláncot, hanem a tagoló karaktert (tagoló karakterláncot) illetve az üres cellák kezelésének módját határozza meg. Ha a második argumentum értéke IGAZ, akkor a függvény figyelmen kívül hagyja az üres cellát, ha HAMIS, akkor létrehoz egy üres tagot a karakterláncban.
Mindkét függvény szöveg-argumentumai természetesen tartományok is lehetnek. Sőt egydimenziós tömbök is.
tagolt szöveg elemeire bontása
... a SZÖVEGFELOSZTÁS függvénnyel. Tehát, ez a függvény pont az ellenkezőjét műveli, mint a SZÖVEGÖSSZEFŰZÉS. A függvénynek elég hosszú az argumentum-listája, két kötelező és négy elhagyható argumentumból áll.
(első argumentum) Az argumentum által meghatározott tagolt szöveg elemeit a függvény egy tömb rekeszeibe helyezi el, majd ezt a tömböt adja eredményül.
(második és a harmadik argumentum) A két argumentum egy-egy tagoló karakterlánc; amelyek az oszlop- illetve a sor-váltás helyét jelzik a függvény számára az eredmény-tömb feltöltésekor. Ha a harmadik argumentum nincs megadva, akkor az eredmény-tömb egysoros lesz.
(negyedik argumentum) Az argumentum az egymást követő tagolók kezelésének meghatározására szolgál. Ha értéke HAMIS vagy nincs megadva, akkor a függvény a soron következő rekeszt, vagy rekeszeket üresen hagyja. Ha értéke IGAZ, akkor az ismétlődő tagolókat egynek tekinti.
(ötödik argumentum) A függvény megkülönbözteti a kis- és nagybetűket. A szolgáltatást az argumentum egy (1) értékével kapcsolhatjuk ki. Ha az argumentum nincs megadva vagy értéke nulla (0), akkor a függvény a szokásos módon működik.
(hatodik argumentum) A tömb szélességét a legszélesebb sora határozza meg. A rövidebb sorok végén ezért üres rekeszek keletkezhetnek. Ezekbe az üres rekeszekbe a függvény a #HIÁNYZIK hibaértéket helyezi el. A hatodik argumentummal a hibaérték helyett alternatív szöveget vagy műveletet deklarálhatunk.
A fenti példa a függvényt bemutató modell. A mindennapi használat ennél lényegesen egyszerűbb.
Ahogy látjuk a tagolt szöveg elemei szöveg adattípusként kerülnek az eredmény-tömb rekeszeibe.
karakterláncok ismétlése
...a SOKSZOR függvénnyel. A függvény két argumentumával a többszörözendő karakterláncot és a létrehozandó példányok számát kell deklarálnunk. Ha a példányok száma nulla, akkor üres cellát kapunk eredményül.
Ebben a feladatban adatok képi megjelenítéséhez használtuk a függvényt, de ez nem igazán „szöveg-kezelés”. Nézzünk arra is egy példát!
A feladat új kód létrehozása volt. Az új kód három eleme: (1) az eredeti kód, majd (2) egy kötőjel és végül (3) annyi típus-karakter, ahányadik kategóriába tartozik az adott ember. Az ARAB függvény eredmény az egyetlen argumentumával meghatározott római szám, arab számjegyekkel.
karakterek, karakterláncok cseréje
Két függvényt biztosít erre a feladatra az Excel a CSERE és a HELYETTE függvényeket. Mindkét függvény töröl egy vagy több szakaszt (törlendő karakterlánc) az átalakítandó szövegből, majd a törölt szakasz helyére beilleszt egy megadott karakterláncot (beillesztendő karakterlánc).
A CSERE függvény argumentumai: (1) az átalakítandó szöveg, (2) a törlendő karakterlánc első karakterének pozíciója az átalakítandó szövegben, (3) a törlendő karakterlánc karaktereinek darabszáma, (4) a beillesztendő karakterlánc.
A szövegkezelő képletek általában bonyolultak. A LET függvény segít abban, hogy ne veszítsük el a fonalat a számtalan függvény-beágyazás során. A függvény argumentumlistája argumentum-párokkal kezdődik: név-kifejezés, név-kifejezés... A nevet nem kell idézőjelezni és ugyanazokat a névadási szabályokat kell betartanunk, mint amilyeneket a munkafüzet-neveknél. A deklarált neveket csak a függvény további kifejezés-argumentumaiban használhatjuk. A függvény argumentum-listáját egy név nélküli kifejezés zárja.
Most már a LET-tel felvértezve, belevághatunk egy CSERE függvényes feladat megoldásába.
A feladat az A oszlopban álló település-karakterláncok átalakítása (D oszlop). A karakterláncokból törölni kell a település megyéjének nevét és a helyére beilleszteni régiójának rövidítését (B oszlop), valamint a település-karakterlánc végén álló terület-számot le kell cserélni a lakos-számra (C oszlop).
Először kiszámítottuk a törlendő megye-név első karakterének pozícióját a település-karakterláncban (tpoz). Ezután megállapítottuk a törlendő megye-név karaktereinek darabszámát (thossz). Miután képeztük a CSERE függvény második és harmadik argumentumát, deklaráltuk a cserét (cser). Ezután eltávolítottuk az új település-karakterlánc végéről a terület-számokat (szcsonk). És végül a FŰZ függvénnyel kialakítottuk a végleges település-karakterláncot. Természetesen, ez a megoldás csak a lehetséges megoldások közül az egyik!
A CSERE tehát a pozíciójával és a hosszával megadott szöveg-szakaszt cseréli le. A HELYETTE függvény viszont egy megadott karakterláncot. Ha több van ebből a karakterláncból az átalakítandó karakterláncban, akkor az összeset vagy csak a megadott sorszámút.
A HELYETTE függvény argumentumai: (1) az átalakítandó szöveg, (2) a törlendő karakterlánc, (3) a beillesztendő karakterlánc, (4) a törlendő karakterlánc hányadik előfordulását kell törölni. A negyedik argumentum elhagyható. Ha nincs megadva a törlendő karakterlánc összes előfordulása törölve lesz.
Van egy listánk (A oszlop), amelynek elemei tagolt szövegek. A tagoló karakter a pont(.). A feladatunk az, hogy képlettel módosítsuk a lista-elemeket (B oszlop) úgy, hogy a lista-elemekben álló utolsó pontot kettőspontra (:) cseréljük.
Először megállapítottuk az átalakítandó szöveget alkotó karakterek darabszámát (khossz). Ezután a HELYETTE függvénnyel eltávolíttattuk az átalakítandó karakterláncból a pontokat. A CSERE és a HELYETTE is csak töröl, ha a beillesztendő karakterlánc nulla hosszúságú (””). A pontoktól megtisztított szöveg karaktereit is megszámláltattuk (cshossz), majd a két szám különbsége adta a pontok darabszámát (pszáma). És végül lecseréltettük a pont „pszáma” névvel megadott sorszámú előfordulását kettőspontra.
A HELYETTE kisbetű-nagybetű érzékeny, ezért egy betű mindkét méretű előfordulásait csak két beágyazott HELYETTE függvénnyel tudjuk törölni. Joker karaktereket a függvény argumentumaiban nem használhatunk.
És most már visszatérhetünk a 160-os kódú szóköz eltávolításához. Ahogy tapasztaltuk a KIMETSZ függvény a 160-as kódú szóközt nem „látja”, ezért csak úgy tudunk megszabadulni tőle, hogy lecseréljük 32-es kódú szóközre. (Természetesen önállóan is törölhetjük a 160-as kódú szóközt a HELYETTE függvénnyel.)
És maradt még egy adósságunk, amely a TISZTÍT függvényhez kapcsolódik. Emlékszünk? A TISZTÍT eltávolítja a szövegből az összes vezérlő karaktert. Többek között a sortörés karaktert is.
két mesterfogás
Vagy másként fogalmazva, két gyakori feladat megoldása szövegkezelő függvényekkel. Az első: meg kell állapítanunk, hány szóból áll egy karakterlánc.
A karakterláncot alkotó szavak számát tehát úgy tudjuk megállapítani, hogy megállapítjuk a karakterláncban álló szóközök darabszámát. Ezt pedig úgy tehetjük meg, hogy a karakterlánc karaktereinek darabszámából kivonjuk a szóközöktől megtisztított karakterlánc karaktereinek darabszámát. És a szóközök darabszámához hozzáadunk egyet.
Nem rossz! De ott a harmadik sorban nem stimmel valami! A cella üres és a képlet mégis egyet mutat! Hopszi! Elfelejtettem kivonni a képlet eredményéből egyet! (De csak ott, ahol a vizsgált cella üres.)
A másik gyakori feladat a tagoló karakter, illetve a tagoló karakterlánc meghatározott sorszámú előfordulása pozíciójának meghatározása a tagolt szövegben. Az alábbi ábrán a tagoló karakterlánc (szóköz, függőleges vonal karakter alias pipe, szóköz) második előfordulása pozícióját kellett meghatároznunk. De miért van erre szükségünk? Az ábra erre a kérdésre is válaszol.
A város kiíratását meg lehetett volna egyszerűbben is oldani: =SZÖVEGUTÁNA(A1;” | ”; 2)! Ez igaz! De gondolnunk kell azokra is, akiknek régebbi verziójú Excelük van! Nekik nincs SZÖVEGELÖTTE meg SZÖVEGUTÁNA függvényük.
„ebből elég! sok a mese! / ne sesegj itt: „se-se! se-se!” / jaj s.o.s.! még egy mese! / nem tréfa ennek fele se!” (Szilágyi Ákos)

margitfalvi.arpad@proton.me