rendezés (négy)

2023-11-10    Excel 2021
fogalmak
Az újabb Excel verziókban (2021, 365…) két „rendező” függvényt is találunk: SORBA.RENDEZ és RENDEZÉS.ALAP.SZERINT. De miért van rájuk szükség, hisz ott a program komplex rendező modulja? Erre a kérdésre próbál választ adni ez a cikk. De előtte még, tisztáznunk kell néhány fogalmat!
A tömb összetartozó adatok logikai rendszere. A tömb elemei képzelt sorokba és képzelt oszlopokba rendezetten állnak. A tömb elemeit a sorszámuk (indexük) illetve a tömbben elfoglalt pozíciójuk (hányadik sor, hányadik oszlop metszésében állnak) azonosítják. A tömb lehet egydimenziós, ez a vektor, amely egyetlen sorból vagy egyetlen oszlopból áll vagy lehet kétdimenziós, ez a mátrix, amely több sorból és több oszlopból áll.
egy- és kétdimenziós tömbök
A tömböt a program hozza létre: (1) a felhasználó által a képletben megadott adatokból vagy (2) automatikusan, ha a felhasználó a képlet tömbös feldolgozását kéri (Shift + Ctrl + Enter) illetve az újabb Excel verziókban (2021, 365…), ha a képlet csak tömb létrehozásával dolgozható fel. Az automatikus tömb elemei lehetnek egy tartomány beolvasott és indexelt cella-tartalmai illetve a feldolgozás indexelt részeredményei.
A tömb részletes leírását a tömbképletekről szóló cikkekben találja.
sorba.rendez
A SORBA.RENDEZ függvény egy adattartományt vagy egy tömböt dolgoz fel. Eredménye egy tömb, amely a felhasználó előírása szerint rendezett inputot tartalmazza. Természetesen az eredmény-tömb felépítése azonos az input felépítésével. Tehát, ahány soros és ahány oszlopos az input, annyi soros és oszlopos az eredmény-tömb. A rendezés kulcsa az input egyik oszlopa vagy sora. Az input lehet egydimenziós vagy kétdimenziós. Nézzünk először két példát az egydimenziós bemenetre!
a SORBA:RENDEZ függvény vektoros alkalmazása
A függvény négy argumentuma a következő. (1) Első argumentum: A feldolgozandó tömb vagy tartomány. Ez a függvény egyetlen kötelező argumentuma. (2) Második argumentum: A rendezés kulcsának indexe. Az input sorainak és oszlopainak számozása egyessel kezdődik és balról jobbra, valamint felülről lefelé halad. Egydimenziós input esetén üres. (3) Harmadik argumentum: A rendezés iránya. A növekvő sorrendet az egyes számmal, a csökkenőt mínusz eggyel kell kérnünk. Ha hiányzik, akkor a sorrend növekvő lesz. (4) Negyedik argumentum: A rendezés tárgya: sorok vagy oszlopok. A sorok rendezést a HAMIS logikai érték, az oszlopokét az IGAZ jelenti. Ha hiányzik, akkor a tömb sorai lesznek rendezve.
A SORBA.RENDEZ egy tömbös feldolgozású függvény. Röviden, tömb-függvény. Az újabb Excel verziókban (2021, 365…) a tömbös feldolgozást már nem kell a Shift + Ctrl + Enter-rel kérnünk. Elegendő az Enter. Az eredmény-tömböt, ha az egyben a képlet végeredménye, a program meg is jeleníti egy a tömb felépítésével azonos tartományban (ahogy a fenti képen látjuk). A megjelenített eredmény-tömböt a Microsoft nem „megjelenített tömb”-nek, hanem „kibontott tömb”-nek nevezi. Természetesen. De nem csak kibontottnak, de „dinamikus”-nak is, mert a függvény inputjának módosulása a függvény eredmény-tömbjének megjelenítését is módosítja.
Ha a megjelenítés helyhiány miatt nem lehetséges, akkor csak a megjelenítendő tömb, kék szaggatott vonallal jelzett, körvonalát láthatjuk és a képlet cellájában a #KIBONTÁS! hibaértéket.
az eredmény-tömböt nem lehet megjeleníteni
Természetesen a SORBA.RENDEZ a képletben állhat beágyazottan is, azaz egy másik függvény argumentumaként. És akkor már nem biztos, hogy a képlet tömböt ad eredményül!
tömb rendezése függvénnyel
A felső képlet kiírja a nevek a SORBA.RENDEZ függvénnyel képzett, rendezett tömbjének harmadik elemét. Az alsó képlet pedig meghatározza a nevek a SORBA.RENDEZ függvénnyel képzett, rendezett tömbje „Eke Pál” elemének indexét, azaz rangsor-pozícióját. Tehát, a függvénynek csak az egyik és nem is a legfontosabb funkciója a tömb megjelenítése, sokkal inkább a képzése.
Az XHOL.VAN függvény a HOL.VAN újabb, tökéletesített változata. A legfontosabb eltérések a HOL.VAN-hoz képest: (1) nem igényel rendezést, (2) a teljes egyezés a szokásos működés, ezért csak az első két argumentum (mit, hol) kötelező, (3) a keresett adat argumentumban általános helyettesítő karakterek (? *) is állhatnak, (4) negyedik argumentum, amellyel nagy táblázatok átvizsgálását gyorsíthatjuk a vizsgálat irányának megadásával.
Most nézzük a függvény mátrixos alkalmazását. A táblázatban diákok négy tantárgyból összegyűjtött pontszámai állnak.
a SORBA.RENDEZ függvény mátrixos alkalmazása
A képen felül a rendezetlen tartomány látjuk, alul pedig az eredmény-tömb megjelenítését. Természetesen a mátrixos használatkor meg kell adni a kulcs indexét (4).
Vegyünk ismét egy példát, amelyben nincs megjelenítés csak képzés. Úgy értem, tömbileg :) Kíváncsi vagyok az első három legjobb angolos pontszámainak átlagára. Az átlagolás nem probléma, de hogyan „nyerjük ki” az eredmény-tömb első három sorának pontszámait?
a SORBA.RENDEZ függvény beágyazott alkalmazása
Hát az INDEX-szel. Természetesen tömbös kiértékeléssel. A tömbös feldolgozású INDEX is három argumentumot kér. Egy tömböt (első argumentum), egy sorszám-tömböt az eredmény-tömb sorai indexeivel (második argumentum) és egy másik sorszám-tömböt az eredmény-tömb oszlopai indexeivel (harmadik argumentum).
A LET függvénnyel dolgoztam, hogy egyszerűen el tudjam mesélni a feladat algoritmusát. Vegyük sorra a LET függvény argumentumait! Első argumentum-pár (1, 2): a rendezett tömb neve (RET) és a tömböt létrehozó képlet. Második argumentum-pár (3, 4): a sor-indexek tömbjének neve (SIT) és a tömböt létrehozó képlet. Harmadik argumentum-pár (5, 6): az oszlop-indexek tömbjének neve (OIT) és a tömböt létrehozó képlet. Negyedik argumentum-pár (7, 8): az elemzendő pontszámok tömbjének neve (PSZ) és a tömböt létrehozó képlet. Utolsó argumentum (9): a pontszámok átlagát kiszámító képlet.
Újdonság a képletben a SORSZÁMLISTA függvény, amely tömböt képez egy számtani sorozat elemeiből. Sajnos ez a függvény is csak az újabb Excel-verziókban (2021, 365…) érhető el. A függvény argumentumai a következők. (1) Első argumentum: hány sorból álljon a tömb. (2) Második argumentum: hány oszlopból álljon a tömb. Nem kötelező. Ha nincs megadva, akkor egyoszlopos tömböt kapunk. (3) Harmadik argumentum: a számtani sorozat első eleme. Nem kötelező. Ha nem adjuk meg, akkor a program egynek veszi. (4) Negyedik argumentum: a számtani sorozat differenciája. Nem kötelező. Ha nem adjuk meg a program egynek veszi.
a SORSZÁMLISTA függvény argumentumai
Visszatérve a „három legjobb angolos” példára, a szokásos képlettel is kiszámíthatjuk a pontszámok átlagát! Ha valakinek túl tanítóbácsis a LET-es verzió.
példa a SORBA.RENDEZ függvény alkalmazására
rendezés.alap.szerint
A függvény egy adattartományt vagy egy tömböt dolgoz fel. Eredménye egy tömb, amely a felhasználó előírása szerint rendezett inputot tartalmazza. Az eredmény-tömb az input felépítésével azonos. A rendezés egy vagy több kulcs szerint történhet. (Meg akartam állapítani, hogy hánnyal, de húsznál abbahagytam…) A rendezés kulcsa nem csak az input valamelyik oszlopa vagy sora lehet, hanem az input sor- illetve oszlopszámával azonos felépítésű tartomány vagy tömb is. A kulcs tájolása határozza meg, hogy az input sorait vagy oszlopait kell a programnak rendeznie.
A RENDEZÉS.ALAP.SZERINT függvény argumentum-listája a következő. (1) Egy tartomány-hivatkozás vagy egy tömb deklarációja. A függvény inputja. (2) Egy tartomány-hivatkozás vagy egy tömb deklarációja. A rendezés elsődleges kulcsa. (3) A rendezés irányát meghatározó szám. A növekvő sorrendű rendezést az egyes szám, a csökkenőt a mínusz egyes jelenti. Ha nincs további kulcs-deklaráció, akkor elhagyható. Ha hiányzik, akkor a rendezés emelkedő sorrendű lesz. (4) Egy tartomány-hivatkozás vagy egy tömb deklarációja. Ez a rendezés másodlagos kulcsa. (5) A rendezés irányát meghatározó szám. Kötelező megadni! (6-7, 8-9…) A további argumentumok párban állnak: kulcs-irány. Az irányt, még akkor is meg kell adni, ha már nincs további kulcs-deklaráció!
Nézzünk egy egyszerű példát! Egy kutatóintézetben munkatársak csoportjai (labor) vetélkedtek egymással egy játékban: egy kísérlet eredményét kellett megjósolniuk (becslés) a csoportok által delegált játékosoknak (Gabi, Béla, Ákos, Mari). Az a csoport győzött, amelynek játékosa a legjobb becslést adta. Másként fogalmazva, akinek a becslése a legközelebb állt a kísérlet mért végeredményéhez. A szabályok szerint, holtverseny esetén az a labor győz, aki előbb adta le a tippjét. A kísérlet eredmény 3,2 lett. Állapítsuk meg a győztes csoportot!
példa a RENDEZÉS.ALAP.SZERINT függvény alkalmazására
A nyertes labor azonosítója a RENDEZÉS.ALAP.SZERINT függvénnyel képzett és rendezett tömb első oszlopának negyedik cellájában áll. Honnan tudjuk ezt? Mert olyan rendezési kulcsokat, és olyan rendezési irányokat határoztunk meg, hogy a képzett tömb első oszlopában álljon a nyerő. Az első kulcs a becslés és a mérés abszolút különbségének tömbje, ABS(B5:E5-3,2), növekvő sorrendben. Tehát a tömb első oszlopában áll majd a legkisebb abszolút különbség. A második és a harmadik kulcs csak a holtversenyek kezelésére szolgál: ha a tippelés napja (második rendezési kulcs) azonos, akkor a tipp leadásának időpontja (harmadik rendezési kulcs) dönt. Mindkét kulcs emelkedő sorendben rendez.
margitfalvi.arpad@gmail.com