tömbképlet, alapok

2020-05-19    Excel 2019
Tömbképlet, így mondják a számítástechnikusok, de valójában nem is a képlet tömbös, hanem a feldolgozása. Először is, mi az a tömb? Sorszámozott elemek halmaza. Mivel a sorszámot gyakran indexnek is mondják, úgy is fogalmazhatunk, hogy a tömb indexelt elemek halmaza. A sorszám az adatfeldolgozás folyamatában az elem azonosítója a halmazon belül. Az indexek kiosztását, vagy egyszerűbben, az indexálást, az Excel végzi, ha utasítjuk, hogy a megadott adat-csoportot tömbként kezelje. Nézzünk egy példát!
tömbképlet, példa
A képen látható táblázat alapján ki kell számolnunk, hány százalék az éves áremelkedések átlaga. Vesszük az első terméket! Az aktuális árat elosztjuk a bevezető árral és a hányadosból kivonunk egyet: D2/B2-1. A különbség a teljes áremelkedés. Ezt kell elosztanunk az évek számával: 2020-C2. Miután ezt a műveletsort minden termékkel elvégeztük jöhet az átlagolás.
De nem ezt tesszük! Arra utasítjuk a programot, hogy a számításkor az aktuális ár, a bevezető ár és a bevezetés éve tartományok adatait egy-egy tömb elemeinek tekintse. Magyarul indexelje a három tartomány számait…
tömbképlet, fogalmak
…és a tömbök azonos sorszámú elemeivel végezze el az előbb összeállított műveletsort, majd a kapott értékeket átlagolja. Állítsuk össze, ennek megfelelően, a képletet.
tömbképlet, példa
Tehát, nem egy-egy cellára hivatkozunk, hanem a bevezető ár, a bevezetés éve és az aktuális ár tartományokra. A képlet-szerkesztését a Shift+Ctrl+Enter billentyűparanccsal kell befejeznünk, amely a képlet tömbös kiértékelésére utasítja az Excelt. Ha rutinból Entert nyomunk, akkor az #ÉRTÉK! hibakódot kapjuk.
A billentyűparancs nem helyezi át a fókuszt másik cellára, ezért a szerkesztőlécen megfigyelhetjük, hogy a program kapcsos zárójelekkel keretezte a képletünket, az egyenlőségjelet is beleértve. Ez jelzi, hogy a cellában álló adat, tömbös feldolgozás eredménye. A zárójelek a képlet szerkesztésekor automatikusan eltűnnek.
tömbös kiértékelés jelzése
A százalékos megjelenítést, természetesen, cella-formázással biztosítottam.
A tömb tehát, egy eszköz az adatfeldolgozás menetében; adat-szerkezet a számítógép operatív tárjában, amely az eredmény megszületését követően törlődik.
A beszélt nyelv, azonban egyszerűsít. A majdani tömbös feldolgozásra gondolva, gyakran tömböt mondunk tartomány helyett. Így beszélünk egydimenziós tömbről, egysoros vagy egyoszlopos tartomány tömbös feldolgozása helyett. És ezért mondunk kétdimenziós tömböt, a több soros és több oszlopos tartományra, illetve háromdimenziós tömböt, a szomszédos munkalapok azonos tartományára.
A tömbös feldolgozást nem csak tartomány-hivatkozásra, de közvetlenül megadott adatokra is előírhatunk. A konstansokat kapcsos zárójelek között kell felsorolnunk és a fordított perjel (\) vagy a pontosvessző karakterekkel kell elválasztanunk. Azért kell két elválasztó karaktert használnunk, mert nem csak az adatokat, de képzeletbeli tartományuk alakját is deklarálnunk kell. Másként fogalmazva, hány sorban, illetve hány oszlopban helyezkednének el ezek az adatok a munkalapon.
tömbképlet, sorok és oszlopok jelölése
Ez egy háromsoros és négyoszlopos képzeletbeli tartomány tömbös feldolgozásra megadva. A kép szerint az egysorban álló adatokat fordított perjel, a sorokat pontosvessző választja el. Azt a szabályt is sejteti a példa, hogy az elemek száma soronként nem változhat.
tömbképlet, sorok és oszlopok jelölése
De miért van szükség erre a virtuális táblázatra!? Mert az adatok tájolása, a képlet „értelmezését” befolyásoló tényező. Vegyünk két egyszerű példát.
konstansok a képletben tömbös feldolgozásra
Az első feladatban meg kellett állapítani hányszor fordul elő összesen a három az öt és hét az A1:A13 tartományban. A egysoros és az egyoszlopos elrendezés ugyanazt az eredményt adja. Sőt, ha véletlenül nem Shift+Ctrl+Enter billentyűparanccsal zárjuk le a képlet szerkesztését, még akkor is „megérti” a program a szándékunkat.
A második feladatban a B10:B12 tartomány számaihoz hozzá kell adni kettőt, négyet és hatot. A két képlet itt már eltérő megoldást ad. Az első variációban a valóságos és az elképzelt tartomány tájolása azonos. A program összeadja az azonos sorszámú elemeket, majd a rész-összegeket szummázza: (v1+k1) + (v2+k2) + (v3+k3). A képleteben a „v” betű a valóságos, a „k” betű a képzelt tartományt jelenti. A második, eltérő tájolású változatban ez a műveletsor hajtódik végre: (v1+k1) + (v1+k2) + (v1+k3) + (v2+k1) + (v2+k2) + (v2+k3) + (v3+k1) + (v3+k2) + (v3+k3). A két műveletsor nagyon más! Az eredményről nem is beszélve.
A képlet tömbös kiértékelés „tömböt” is eredményezhet, Az eredmény-tömb elemeit a program, az indexek alapján, sorrendben írja ki a felhasználó által kijelölt tartományban. Valahogy így!
több eredményt adó tömbképlet
A három legmagasabb pontszámot akarom kiíratni. Először kijelöltem három cellát, majd csak ezután fogtam a képlet szerkesztésébe… A NAGY függvény beírása közben, mint rendesen, a program megjelenítette a függvény argumentum-listáját. És nini! Az első argumentumot tömbnek nevezi. De, miért? Hiszen meghatározásunk szerint, a tömb egy halmaz, amelynek elemeit a halmazon belüli azonosítás érdekében, indexeltünk. És hol vannak itt a sorszámok? Sehol. Az Excel szóhasználatában a tömb, gyakran a tartomány szinonimája!
Ha a program a képlet kiértékelését követően, nem talál kijelölt tartományt, akkor csak az eredmény-tömb első elemét írja ki. Ha talál, akkor annak celláit feltölti, még akkor is, ha a cellák száma nem elegendő a teljes tömb kiírásához. Mit tehetünk, ha elfelejtettük előzetesen kijelölni az eredmény-cellákat?
több eredményt adó tömbképlet utólagos javítása
Kijelöljük utólag. A már meglévő eredmény-cellával együtt. Azután az F2 billentyűvel megnyitjuk szerkesztésre a képletet, de csak azért, hogy rögtön le is zárhassuk a tömbös kiértékelés billentyűparancsával.
Ne tévesszen meg senkit a bemutatott példák egyszerűsége, a gyakorlatban a tömbös feldolgozást igénylő képletek bonyolultak. Sőt, általában nagyon bonyolultak. A hibás vagy a nem várt eredményt adó képletek javításakor jól jön, hogy a rész-eredményeket is meg tudjuk jeleníteni. De, hogyan? Van például, két tartományunk, amelynek elemeit össze kell szoroznunk és a szorzatok közül ki kell választanunk a legnagyobbat.
tömbképlet, példa
Első lépésben a program indexeli a tartományok elemeit, majd összeszorozza az azonos sorszámú elemeket. A szorzatok egy tömbbe kerülnek. Ennek a tömbnek az elemeit fogjuk megjeleníteni, hogy ellenőrizzük a végeredmény helyességét.
a részeredmények tömbjének megjelenítése
Tehát kijelöljük a képletben a szorzást és megnyomjuk a F9 billentyűt. A program elvégzi a műveletsort és megjeleníti a szorzatokat. A rész-eredmények pozíciója, elképzelt tartományukban, azonos feldolgozott adataik saját tartományukban elfoglalt pozíciójával.
a részeredmények tömbjének megjelenítése
A képlet-rész kiértékelése szolgáltatás, nevével ellentétben, a feldolgozandó karakterláncot önálló kifejezésnek tekinti, ezért a kijelölt résznek meg kell felelnie a képletre vonatkozó összes szemantikai és szintaktikai szabálynak. Az ellenőrzés végeztével az Esc nyomógombbal tudunk az eredeti képlethez visszatérni. Ha nem így teszünk, akkor a program a rész-eredményeket beírja a képletbe.
Képlet-vizsgálati kitérőnk után térjünk vissza a három legmagasabb pontszám példánkra. Mikor kiderült, hogy elfelejtettük kijelölni az eredmény-cellákat, miért vacakoltunk annyit? Miért nem másoltuk le egyszerűen a képletet? Megtehettük volna, és a program fel is dolgozta volna a másolatokat. Tömbösen. Tehát három számot adott volna eredményül és abból a háromból csak az első került volna a cellába.
a tömbképlet másolhatósága
Felül az eredeti képlet, alatta a másolatok. Természetesen, ha meg akarjuk jeleníteni az eredmény-tömb elemeit, most a teljes képletet kell kijelölnünk. Általában elmondható, hogy a több adatot eredményező, tömbös feldolgozású képletek nem másolhatók. Az egyetlen adatot eredményezők már igen. Lássunk erre is példát. Állapítsuk meg a táblázat sorairól, hogy adataik azonosak-e a felettük álló sor adataival!
a tömbképlet másolhatósága
Tehát csak az egyetlen adatot eredményező tömbös kiértékelésű képlet másolható, a több adatot eredményező nem. Sőt, utóbbi eredmény-cellái csak együtt kezelhetők. „A tömbök részei nem módosíthatók” figyelmeztet a program, ha valamelyik cellát önállóan próbáljuk szerkeszteni, mozgatni vagy törölni.
margitfalvi.arpad@gmail.com