a HOL.VAN és az XHOL.VAN függvények bemutatása
2025-08-06 Excel 2024
fogalmak
A HOL.VAN függvény neve egy rövidített kérdés: hol van ez az adat ebben a vektorban. A számítástechnikában az egysoros vagy egyoszlopos tartományt nevezik vektornak. Ha viszont a HOL.VAN vektorban dolgozik, akkor miért nem HÁNYADIK a neve: hányadik cellában áll ez az adat? Máskülönben maga a vektor fogalom is hiányzik a program „szótárából”.
Jó! Ha nem „vektor”, akkor legyen „tartomány”! De a „tábla”, hogy jön ide? Azért, mert alliterál a „tartománnyal”?
Az XHOL.VAN függvény, amely a 2021-es program-változat egyik újdonsága volt, a HOL.VAN „frissítése”. Azért „x” mert a HOL.VAN neve angolul „MATCH” és az új függvény nevét úgy képezték, hogy a „match” eléjéhez hozzáragasztották az „extended” „x”-ét. Így lett XMATCH. És a magyarításban a hol.van elé is odatették ezt az x-et.
Mi az a tömb? Egy virtuális tároló, amely rekeszekből áll. Egy rekesz egy adatot tárol. A rekeszeket a program az indexükkel azonosítja. Van egydimenziós tömb, ahol a rekeszek egyetlen sorban illetve egyetlen oszlopban állnak. Ez is egy vektor. A kétdimenziós tömb egy virtuális táblázat, amely nem cellákból, hanem rekeszekből épül fel. Ez pedig egy mátrix. És van háromdimenziós tömb is, amelyet azonos méretű (sor, oszlop) mátrixok alkotnak.
De vissza a témánkhoz! Az XHOL.VAN második argumentuma is vektor, de nem csak tartomány, hanem egydimenziós tömb is lehet. Legalább is az argumentum neve erre utal. Tehát, mindkét függvény egy vektorban keresi az első argumentumával meghatározott adatot és a találat cellájának sorszámát (indexét) adja eredményül. A keresés és a cellák sorszámozása is balról jobbra illetve felülről lefelé halad. A sorszámozás egyessel kezdődik.
Mindkét függvény első argumentuma, a keresett adat. Adattípusa tetszőleges, de a konstansként megadott dátumot a DÁTUMÉRTÉK, az időpontot (időtartamot) az IDŐÉRTÉK függvényekkel át kell alakítattnunk számmá.
Ha a függvények nem találják a vektorba a keresett adatot, akkor a #HIÁNYZIK hibaértéket adják eredményül.
találat - a keresés módja
Mindkét függvény három módszer szerint tud keresni: azonosat kereső, alulról közelítő, felülről közelítő. A három lehetőség közül a felhasználónak kell választani. Ha nem választ, a függvény a szokásos módszert fogja alkalmazni.
Mi minősül találatnak az egyes módszerek alkalmazásakor? (azonosat kereső) Az első olyan adat a vektorban, amely azonos a „keresett adattal” (első argumentum). Figyelem, figyelem! Egyik függvény sem különbözteti meg a kis- és nagybetűket!
(alulról közelítő) Az első olyan adat a vektorban, amely azonos a keresett adattal. Ha nincs ilyen adat, akkor az az adat, amelyik a növekvő rendezettségű vektorban, közvetlenül a keresett adatt előtt állna, ha az szerepelne a listában.
(felülről közelítő) Az első olyan adat a vektorban, amely azonos a keresett adattal. Ha nincs ilyen adat, akkor az az adat, amelyik a csökkenő rendezettségű vektorban, közvetlenül a keresett adatt előtt állna, ha az szerepelne a listában.
a függvények harmadik argumentuma
Mindkét függvény harmadik argumentuma a keresés módját határozza meg. Hasonlítsuk össze a megadás előírásait.
Először is: nem kötelező a választás! Ha nem választunk, akkor alulról közelítő (HOL.VAN) vagy azonosat kereső (XHOL.VAN) módszerrel történik a keresés. A HOL.VAN-t használva a rendezést azonban így sem tudjuk megúszni.
Figyelem, figyelem! Az argumentum-értékek a közelítő kereséseknél eltérőek. Például, az alulról közelítés a HOL.VAN-nál egy (1) az XHOL.VAN-nál mínusz egy (-1).
A táblázatot vizsgálgatva azt híhetnénk, hogy a HOL.VAN-nal nem végezhetünk joker karakteres (?, *) keresést. De végezhetünk, mégpedig külön deklaráció nélkül: HOL.VAN(”Ma*”; A1:A5; 0).
rendezés
Az XHOL.VAN használata kényelmesebb, mint a HOL.VAN-é, mert elmarad a vizsgált táblázat rendezése. De az eltérő működés eltérő eredményre vezethet!
A fenti kép egy alulról közelítő keresést mutat. Felül a rendezés nélküli lista az XHOL.VAN függvénnyel elemezve. Alul pedig a számok alapján növekvő sorrendbe rendezett kis táblázat a HOL.VAN függvénnyel vizsgálva.
Tehát az XHOL.VAN így „módosította” az alulról közelítő keresés versikéjét: melyik az az első (!) olyan adat a vektorban, amely közvetlenül a keresett adat előtt állna a rendezett vektorban, ha a keresett adat szerepelne a vektorban.
kis- és nagybetűl megkülönböztetése
Már említettem hogy, a két függvény a kis- és nagybetűket nem különbözteti meg. Előfordulhat azonban, hogy nem mindegy „AA” vagy „aa”. Megoldható a probléma, de előtte egy kis népművelés.
Tehát, karakter szintű egyezést csak az AZONOS függvénnyel tudunk kimutatni. Akkor alkalmazzuk az AZONOS függvényt!
Nem egészen így gondoltam! Mit keres az első argumentumban az IGAZ logikai érték? Miért nem koko? Megmagyarázom.
Az AZONOS függvény második argumentumában álló tartománnyal (A1:E1) a képlet tömbös kiértékelését írtuk elő. Tehát, a régebbi program-verziókban a Shift+Ctrl+Enter billentyűkkel kell a szerkesztését lezárnunk. Értékeljük ki önállóan a képlet „azonos” részét (kijelölés, F9)!
A 2024-es Excelben már le sem kell nyomni az F9-t, ahogy kijelöljük a képletrészt a program automatikusan megjeleníti a kiértékelés eredményét a szerkesztőléc felett. Tehát az AZONOS függvény eredménye egy egydimenziós tömb, amelyben a HOL.VAN megkeresi az első IGAZ logikai értéket. Tehát, nem csak az XHOL.VAN, hanem a HOL.VAN második argumentuma is lehet tömb!
az xhol.van plusz argumentuma
De előtte még egy kis népművelés. A közelítő keresés algoritmusa rendezett vektort igényel, de az XHOL.VAN mégsem kér felhasználói rendezést. Azért nem, mert elvégzi helyettünk ezt a műveletet is. A háttérben. És a rendezett vektort a memóriában tárolja.
A keresés felülről lefelé, vagy balról jobbra halad. Az irány megfordítására, akkor van szükségünk, ha a keresett adat utolsó előfordulásának pozícióját kívánjuk megállapítani.
De nem csak a keresés irányát fordíthatjuk meg a negyedik argumentummal, hanem a hagyományos lineáris keresés helyett kérhetünk félintervallumos végrehajtást is. Mit takar a két elnevezés? A szekvenciális, magyarul lineáris :) elindul a vektor egyik végétől és egyesével lépegetve, összehasonlítgatja a vektor elemeit az ismert adattal. Ha a tízezres vektor kilencezer-ötszázötvenötödik eleme egyezik az keresett adattal, akkor nincs szerencsénk.
A bináris, más néven félintervallumos algoritmus csak a vektor meghatározott elemeit vizsgálja. Az első lépésben a vektor közepén álló elemet hasonlítja össze a keresett adattal. Mivel a vektor rendezett ennek a vizsgálatnak az eredményéből már kiderül, hogy az ismert adatot a vektor melyik felében kell keresni. A következő lépésben ennek a félnek a közepén álló elemmel fogja a program összehasonlítani a keresett adatot. És ebből a vizsgálatból kiderül, hogy a félvektor melyik felétől kell a keresést folytatni. És így tovább.
a két függvény összehasonlítása
Most már ismerjük a két függvény működésének minden fontosabb tulajdonságát. Hasonlítsuk össze ezeket a közös tulajdonságokat!
És akkor most mi a tanulság? Melyik függvényt érdemes használni? Mindenképpen az XHOL.VAN-t, már csak az elmaradó rendezés miatt is.

margitfalvi.arpad@proton.me