az időszak-kezelő függvények rendszerezése
2018-09-13    Excel 2016
A bővítmény dátum-kezelő függvényeinek egy része meghatározott időszak dátumait vizsgálja. Ez az időszak lehet egy dátumegység, pél­dá­ul év, negyedév, hónap, de lehet a felhasználó által, határ-napokkal deklarált időintervallum is. Ezeket a függvényeket a bővítmény a sem­mit­mon­dó „időbeliintelligencia-függvényeknek” nevezi. Mi, szerényen, csak maradjunk az időszak-kezelő függvények elnevezésnél!
    Összesen harminchárom függvényről van szó. Ez a bővítmény 2016-os verziójának készlete. Először tekintsük át a függvények, ABC rend­be szedett, listáját.
DAX, időszak-kezelő függvények ABC sorrendben
Ahogy a képen látjuk az időszak-kezelő függvények többsége családos, de találunk közöttük egyedülállókat is. A családosak neve két rész­ből áll. A kék betűs előtagból és a kötöjellel kezdődő utótagból. Például a CLOSINGBALANCE család háromtagú: CLOSING­BAL­ANCE­MONTH, CLOSINGBALANCEQUARTER és CLOSINGBALANCEYEAR.
    Az időszak-kezelő függvények dátum-argumentumában nem csak a mezőnevet, de a táblanevet is meg kell adnunk, ’táblanév’[mezőnév] formában. A táblanév aposztrófjai elhagyhatók, ha a név nem tartalmaz szóközt és ékezetes magyar karaktereket. A táblanév hiányára a kö­vet­ke­ző üzenet figyelmeztet: A következő elem értéke nem állapítható meg: „<mezőnév>”. Vagy nem létezik „<mezőnév>” elem, vagy nincs „<me­ző­név>” nevű oszlophoz tartozó aktuális sor.
    Az időszak-kezelő függvények bemutatásakor meg kell különböztetnünk egy dátumegység naptári és a táblában tárolt dátumait. Ve­gyük például a 2017-es év januári dátumait. A naptárban ennek a dátumegységnek a legkorábbi dátuma 2017-01-01, de a táblában tárolt dá­tu­mok között a legkorábbi csak 2017-01-25. A táblában álló dátumokat a „tárolt” jelzővel különböztetjük meg a naptárban állóktól!
    Az időszak-kezelő függvénnyel elemzett dátumegység a pivot tábla sor- vagy oszlop mezőjének az a tétele, amelyhez az időszak-ke­ze­lő függvényt tartalmazó egyéni összesítés egy meghatározott előfordulása tartozik. Másként fogalmazva, az a dátumegység-tétel, ame­lyet az időszak-kezelő függvényt tartalmazó egyéni összesítés egy konkrét előfordulása, a pivot táblában elfoglalt pozíciójával, a sor- vagy osz­lop­te­rü­le­ten meghatároz, az „az elemzett dátumegység”.
    Minden időszak-kezelő függvény egy vagy több dátumot keres egy meghatározott dátumegységben. Ez a dátum-tartomány a „vizsgált dá­tum­egy­ség”, amelyet a függvény típusa, argumentumai, illetve az elemzett dátumegység határoz meg. Tehát az elemzett dá­tum­egy­ség és a vizsgált dátumegység az időszak-kezelő függvények esetében nem szinonimák, hanem önálló fogalmak!
    Egy példa segítségével megpróbálom a két fogalom különbségét szemléltetni. Van egy adatbázis-táblázatom, amelynek neve: A. Eb­ből a táblázatból csatolással táblát hoztam létre, amelyet összekapcsoltam a naptár-táblával. Az így kialakított adatbázist pivot táblákkal elem­zem. Egyéni összesítésekkel megszámláltattam az egyes hónapokat megelőző- (P_MONTH) és az azokat követő hónapok (N_MONTH) dá­tu­ma­it. Az előző hónap dátumait a PREVIOUSMONTH, a következő hónap dátumait NEXTMONTH függvény szolgáltatta. Az egy­me­zős virtuális táb­lák rekordjait a COUNTROWS függvénnyel számoltattam meg.
DAX, időszak-kezelő függvények, fogalmak
A kép közepén álló adatbázis-táblázatot egy-egy pivot tábla fogja közre. Mindkét elemzőtáblában a szürke nyíllal jelölt tételt figyeljük! A P_MONT és az N_MONT egyéni összesítés 3-as és 1-s értékei a 2015-ös év januárját határozzák meg a pivot tábla sor-területén. Ez a tétel a két időszak-kezelő függvény elemzett dátumegysége. A két függvény vizsgált dátumegysége, amelyekre a piros nyilak mutatnak már el­té­rő: a PREVIOUSMONTH függvényé a 2014-es év decembere, a NEXTMONTH függvényé a 2015-ös év februárja.
    Az időszak-kezelő függvények meghatározott dátumot vagy dátumokat keresnek egy mezőben, de némelyik nem a dátumot, illetve dá­tu­mo­kat adja eredményül, hanem a dátumokat tartalmazó rekordokban elvégzi a felhasználó által előírt műveleteket. Tehát ered­mé­nyü­ket vizs­gál­va az időszak-kezelő függvények három csoportba sorolhatók: [1] egyetlen dátumot visszaadók, [2] dátumokat ered­mé­nye­zők és [3] a dátum alapján kiválasztott rekordokat feldolgozók.
    Utóbbi csoportba tartozik OPENINGBALANCE, a CLOSINGBALANCE és a TOTAL függvénycsalád. Az OPENINGBALANCE függvény az elemzett dátumot megelőző, a CLOSINGBALANCE és a TOTAL az elemzett dátum dátumegységét vizsgálják. Az O­PEN­ING­BAL­ANCE és a CLOSINGBALANCE család tagjai a dátumegység legkésőbbi dátumát, a TOTAL függvénycsalád tagjai a dá­tum­egy­ség összes tárolt dá­tu­mát az elemzett dátumig bezárólag, tartalmazó rekordokat dolgozzák fel. Mindhárom függvénycsaládnak van hó­na­pos, negyedéves és éves változata. Mivel alapvetően a napok vizsgálatára szolgáló függvényekről van szó, naptár-tábla nélkül is használhatók.
DAX, meghatározott napok rekordjait feldolgozó időszak-kezelő függvények
Amit fontos megjegyeznünk: az OPENINGBALANCE függvénycsalád az elemzett napot megelőző hónap vagy negyedév vagy év tárolt, leg­ké­sőb­bi dátumát tartalmazó rekordokat dolgozza fel.
    A további időszak-kezelő függvények dátumot vagy dátumokat adnak eredményül. Először tekintsük át az egyetlen dátumot ered­mé­nye­ző függvényeket.
DAX, egyetlen dátumot eredményező időszak-kezelő függvények
Az ábra tanulsága szerint ezek a függvények az elemzett dátumegységet vizsgálják és a NEXTDAY és a PREVIOUSDAY függvényeket le­szá­mít­va, az elemzett dátumegység tárolt legkorábbi illetve legkésőbbi dátumát adják eredményül.
    A dátumokat eredményező időszak-kezelő függvények a vizsgált időintervallumban előforduló dátumokat adják eredményül. Kivétel a na­pok elemzésére szolgáló DATES függvénycsalád, amely az elemzett napot tartalmazó dátumegység tárolt dátumait adja eredményül az e­lem­zett nappal bezárólag.
    A dátumokat eredményező függvények között is találunk hetek és félévek elemzésére is alkalmas függvényeket: DATESINPERIOD, DATES­BE­TWEEN.
    A DATEADD és a PARALLELPERIOD függvényekkel az elemzett dátumegység egy időben eltolt megfelelőjét vizsgálhatjuk. Ez lehet az elemzett dátumegységet megelőző/követő, tetszőleges sorszámú dátumegység.
    A DATESINPERIOD függvény a vizsgált időszak első napjának, a DATESBETWEEN függvény az első és utolsó napjának, dá­tum­egy­sé­gek­től független megadását teszik lehetővé.
DAX, egy időszak dátumait eredményező időszak-kezelő függvények
Miután a függvényeket eredményük szerinti csoportosításban rendszereztük, keressünk más, az osztályozásra alkalmas közös tu­laj­don­sá­go­kat!
    A TOTAL és a DATES függvénycsalád rokonsága szembeötlő, nemcsak tagjaik elnevezése, de az elemzendő és a vizsgált dá­tum­egy­sé­ge­ik is azonosak, sőt a keresett dátumok is megegyeznek.
DAX, a TOTAL és a DATES függvény-család
Tehát mindkét függvénycsalád tagjai az elemzett napot tartalmazó dátumegység dátumait gyűjtik össze az elemzett nappal bezárólag. A kü­lönb­ség csupán annyi, hogy a TOTAL függvények a megtalált dátumokat tartalmazó rekordokban kiértékelik az argumentumukkal meg­ha­tá­ro­zott kifejezést, a DATES függvények pedig a megtalált dátumokat adják eredményül.
letöltés pdf-ben
margitfalvi.arpad@gmail.com