Telefonszámunk: 1-472-0679

MNB árfolyamlista – következő munkanap

2019-07-15 - horvimi - Kategória: Általános tippek, Függvények
Hivatkozott Excel verzio: Excel 2010 Excel 2016 Office365

A lényeg az előző részben van, ahol PowerQuery-vel csatlakozunk az MNB honlapjához, és onnan töltjük be a két dátum közötti árfolyamlistát.

Ebben a részben a használatára nézünk példát. Mert ugye a letöltött dátum intervallum nem folytonos, a munkaszüneti napok hiányoznak belőle. Ezért ha mi egy munkaszüneti naphoz keresnénk napi árfolyamot, akkor az FKERES hibát fog visszaadni. A bal oldali ábrán kiemeltem, hogy például hol maradnak ki a hétvégék a listából. A jobb oldali ábrán van egy dátum listánk, amely napokhoz Euró árfolyamot szeretnénk keresni a letöltött táblázatból, akkor a hiányzó napokra az FKERES hibát fog visszaadni. A feladat az, hogy ha nem találunk pontos dátum egyezést, akkor a következő létező munkanap árfolyamával számoljunk.

hianyzo-napokNem-talalt-napok

A megoldás

Ha nincs pontos egyezés, keressük meg a keresett dátum utáni első létező dátumot, és vegyük abból a sorból az árfolyamot. Ezt úgy is megfogalmazhatjuk, hogy keresse meg a keresett dátumnál kisebbek közül a legutolsót, és az árfolyamot vegye a következő sorból.

Mivel a zöld Euró árfolyam táblázatunkban a dátumok növekvő sorban vannak, lehet keresni közelítő kereséssel is, ami ha nem talál, akkor a legközelebbi, létező kisebbet fogja találatnak tekinteni.  Ezt a HOL.VAN (MATCH) függvénnyel oldhatjuk meg.

sorszám = HOL.VAN(keresett_dátum;árfolyam tábla dátum oszlopa;1)

Ezután egy INDEX függvénnyel kivesszük az EUR oszlopból a következő sorban lévő árfolyamot.

=INDEX(EUR oszlop; sorszam+1)

Mindez egyben a hibakezeléssel

=HAHIBA(FKERES(E2;Table_0;2;0);INDEX(Table_0[EUR euro 1];HOL.VAN(E2;Table_0[Date];1)+1))

Ahol Table_0 az árfolyamtábla, F2 a saját listánk dátum oszlopának első cellája. Ezt aztán le lehet másolni az aljáig.

Letölthető munkafüzet

MNB-kovetkezo-munkanap-arfolyam

Mindez videón

2 hozzászólás
  1. Sziasztok!
    Apró, de fontos észrevétel…

    „Ha nincs pontos egyezés, keressük meg a keresett dátum utáni első létező dátumot, és vegyük abból a sorból az árfolyamot.”
    helyett:
    Ha nincs pontos egyezés, keressük meg a keresett dátum előtti utolsó létező dátumot, és vegyük abból a sorból az (utolsó ismert) árfolyamot. Ne akarjunk visszamenni az időben és onnan jósolni a következő napi árfolyamot!

    üdvözlettel
    verax

  2. Szia!

    Elvileg teljesen igazad van, de a feladat a növekvő listában a következő nagyobb kiválasztását szeretné bemutatni. Valószínűleg nincs eléggé kidomborítva, és valóban, ha az aktuális dátum, azaz a mai nap pihenőnep, akkor a jövőből próbálná meg lekérni a következő dátumot, amit az MNB forrás még nem is tartalmaz. Az előző létező dátum egy sima FKERES ugye, csak nem pontos egyezést kell kérnünk.
    Majd egyszer írok egy pontosítást.

    Köszönöm!

Vélemény, hozzászólás?