Jazyk DAX (Data Analysis Expressions) má 35 funkcií určených na agregáciu a porovnávanie údajov v priebehu času. Na rozdiel od funkcií dátumu a času jazyka DAX nemajú funkcie časovej inteligencie v Exceli nič podobné. Dôvodom je, že funkcie časovej inteligencie pracujú s údajmi, ktoré sa neustále menia, v závislosti od kontextu, ktorý vyberiete v kontingenčných tabuľkách a vizualizáciách Power View.
Ak chcete pracovať s funkciami časovej inteligencie, musíte mať v dátovom modeli zahrnutú tabuľku dátumov. Tabuľka dátumov musí obsahovať stĺpec s jedným riadkom pre každý deň každého roka zahrnutým v údajoch. Tento stĺpec sa považuje za stĺpec Dátum (dá sa však pomenovať podľa potreby). Mnohé funkcie časovej inteligencie vyžadujú stĺpec dátumov na výpočet podľa dátumov, ktoré vyberiete ako polia v zostave. Ak máte napríklad mierku, ktorá vypočíta zostatok na konci koncového štvrťroka pomocou funkcie CLOSINGBALANCEQTR, aby power Pivot vedel, kedy v skutočnosti je koniec štvrťroka, musí odkazovať na stĺpec dátumov v tabuľke dátumov, aby vedel, kedy sa štvrťrok začína a končí. Ďalšie informácie o tabuľkách dátumov nájdete v téme Princípy a vytváranie tabuliek dátumov v doplnku Power Pivot v Exceli.
Funkcie
Funkcie, ktoré vrátia jeden dátum
Funkcie v tejto kategórii vrátia jeden dátum. Výsledok potom možno použiť ako argumenty pre iné funkcie.
Prvé dve funkcie v tejto kategórii vrátia prvý alebo posledný dátum v Date_Column v aktuálnom kontexte. Môže to byť užitočné, keď chcete nájsť prvý alebo posledný dátum, kedy ste mali transakciu určitého typu. Tieto funkcie majú iba jeden argument, názov stĺpca dátumu v tabuľke dátumov.
Ďalšie dve funkcie v tejto kategórii nájdu prvý alebo posledný dátum (alebo ľubovoľnú inú hodnotu stĺpca), kde výraz obsahuje neprázdne hodnoty. Najčastejšie sa používa v situáciách, ako je napríklad inventár, kde chcete získať poslednú čiastku zásob a neviete, kedy bol nasnímaný posledný inventár.
-
FIRSTNONBLANK (Date_Column, výraz)
-
LASTNONBLANK (Date_Column, výraz)
Ďalších šesť funkcií, ktoré vrátia jeden dátum, sú funkcie, ktoré vrátia prvý alebo posledný dátum mesiaca, štvrťroka alebo roka v aktuálnom kontexte výpočtu.
-
STARTOFMONTH (Date_Column)
-
STARTOFQUARTER (Date_Column)
-
STARTOFYEAR (Date_Column [,YE_Date])
-
KONIEC MESIACA (Date_Column)
-
ENDOFQUARTER (Date_Column)
-
ENDOFYEAR (Date_Column [,YE_Date])
Funkcie, ktoré vracajú tabuľku dátumov
Existuje šestnásť funkcií časovej inteligencie, ktoré vracajú tabuľku dátumov. Tieto funkcie sa najčastejšie používajú ako argument SetFilter pre funkciu CALCULATE . Rovnako ako všetky funkcie časovej inteligencie v jazyku DAX, každá funkcia použije stĺpec dátumu ako jeden zo svojich argumentov.
Prvých osem funkcií v tejto kategórii sa začína stĺpcom dátumu v aktuálnom kontexte. Ak napríklad používate mierku v kontingenčnej tabuľke, označenia stĺpcov alebo riadkov môžu obsahovať mesiac alebo rok. Čistý efekt je stĺpec dátumov filtrovaný tak, aby zahŕňal iba dátumy pre aktuálny kontext. Od tohto aktuálneho kontextu týchto osem funkcií potom vypočíta predchádzajúci (alebo nasledujúci) deň, mesiac, štvrťrok alebo rok a vráti tieto dátumy vo forme tabuľky s jedným stĺpcom. "Predchádzajúce" funkcie pracujú spätne od prvého dátumu v aktuálnom kontexte a funkcie "next" sa posunú dopredu od posledného dátumu v aktuálnom kontexte.
-
PREVIOUSDAY (Date_Column)
-
PREVIOUSMONTH (Date_Column)
-
PREVIOUSQUARTER (Date_Column)
-
PREVIOUSYEAR (Date_Column [,YE_Date])
-
NASLEDUJÚCI DEŇ (Date_Column)
-
NASLEDUJÚCIMESIAC (Date_Column)
-
ĎALŠÍŠTVRŤHOD ( Date_Column)
-
NEXTYEAR (Date_Column [,YE_Date])
Ďalšie štyri funkcie v tejto kategórii sú podobné, ale namiesto výpočtu predchádzajúceho (alebo nasledujúceho) obdobia vypočítavajú množinu dátumov v období, ktoré je "od mesiaca k dátumu" (alebo od štvrťroka k dátumu, od roka k dátumu alebo v rovnakom období predchádzajúceho roka). Všetky tieto funkcie vykonávajú svoje výpočty pomocou posledného dátumu v aktuálnom kontexte. Všimnite si, že funkcia SAMEPERIODLASTYEAR vyžaduje, aby aktuálny kontext obsahoval množinu dátumov nasledujúcich za sebou. Ak aktuálny kontext nie je množinou dátumov nasledujúcich za sebou, funkcia SAMEPERIODLASTYEAR vráti chybu.
-
DATESMTD (Date_Column)
-
DATESQTD (Date_Column)
-
DATESYTD (Date_Column [,YE_Date])
-
SAMEPERIODLASTYEAR (Date_Column)
Posledné štyri funkcie v tejto kategórii sú trochu zložitejšie a tiež o niečo výkonnejšie. Tieto funkcie sa používajú na prechod z množiny dátumov, ktoré sú v aktuálnom kontexte, na novú množinu dátumov.
-
DATEADD (Date_Column, Number_of_Intervals, interval)
-
DATESBETWEEN (Date_Column, Start_Date, End_Date)
-
DATESINPERIOD (Date_Column, Start_Date, Number_of_Intervals, interval)
-
PARALLELPERIOD (Date_Column, Number_of_Intervals, interval)
Funkcia DATESBETWEEN vypočíta množinu dátumov medzi zadaným počiatočným a koncovým dátumom. Zostávajúce tri funkcie posunú určitý počet časových intervalov z aktuálneho kontextu. Interval môže byť deň, mesiac, štvrťrok alebo rok. Tieto funkcie uľahčujú posúvanie časového intervalu výpočtu niektorou z týchto možností:
-
Vráťte sa o dva roky späť
-
Vráťte sa o mesiac späť
-
Posun o tri štvrtiny dopredu
-
Návrat o 14 dní
-
Posun dopredu o 28 dní
V každom prípade je potrebné iba určiť, ktorý interval a koľko z týchto intervalov sa má posunúť. Kladný interval sa posunie dopredu v čase, zatiaľ čo záporný interval sa posunie späť v čase. Samotný interval je zadaný kľúčovým slovom DAY, MONTH, QUARTER alebo YEAR. Tieto kľúčové slová nie sú reťazce, takže by nemali byť v úvodzovkách.
Funkcie, ktoré vyhodnocujú výrazy za časové obdobie
Táto kategória funkcií vyhodnocuje výraz za zadané časové obdobie. To isté môžete dosiahnuť pomocou funkcie CALCULATE a iných funkcií časovej inteligencie. Príklad:
= TOTALMTD (výraz, Date_Column [, NastaviťFilter])
je presne to isté ako:
= CALCULATE (Výraz, DATESMTD (Date_Column)[, NastaviťFilter])
Používanie týchto funkcií časovej inteligencie je však jednoduchšie, ak sú vhodné na riešenie problému:
-
TOTALMTD (výraz, Date_Column [, NastaviťFilter])
-
TOTALQTD (výraz, Date_Column [, NastaviťFilter])
-
TOTALYTD (výraz, Date_Column [, NastaviťFilter] [,YE_Date]) *
V tejto kategórii je tiež skupina funkcií, ktoré vypočítavajú zostatky na otváraní a zatváraní. S týmito konkrétnymi funkciami by ste mali rozumieť určitým konceptom. Po prvé, ako by ste si mohli myslieť, počiatočný zostatok pre každé obdobie je rovnaký ako konečný zostatok za predchádzajúce obdobie. Konečný zostatok zahŕňa všetky údaje do konca obdobia, zatiaľ čo počiatočný zostatok nezahŕňa žiadne údaje z aktuálneho obdobia.
Tieto funkcie vždy vrátia hodnotu výrazu vyhodnoteného pre konkrétny časový bod. Bod v čase, na čom nám záleží, je vždy posledná možná hodnota dátumu v kalendárnom období. Počiatočný zostatok vychádza z posledného dátumu predchádzajúceho obdobia, zatiaľ čo zostatok na uzávierke vychádza z posledného dátumu v aktuálnom období. Aktuálne obdobie je vždy určené posledným dátumom v aktuálnom kontexte dátumu.
-
OPENINGBALANCEMONTH (Výraz, Date_Column [,NastaviťFilter])
-
OTVÁRACÍŠTVRŤOBOK Štvrťrok (výraz, Date_Column [,NastaviťFilter])
-
OPENINGBALANCEYEAR (výraz, Date_Column [,NastaviťFilter] [,YE_Date])
-
CLOSINGBALANCEMONTH (výraz, Date_Column [,NastaviťFilter])
-
CLOSINGBALANCEQUARTER (výraz, Date_Column [,NastaviťFilter])
-
CLOSINGBALANCEYEAR (výraz, Date_Column [,NastaviťFilter] [,YE_Date])
Ďalšie zdroje informácií
Články: Vysvetlenie a vytvorenie tabuliek dátumov v doplnku Power Pivot v Exceli
Odkaz: Referenčné informácie o funkciách jazyka DAXv Office.com
Ukážky: Modelovanie a analýza údajov zisku a straty pomocou doplnku Microsoft PowerPivot v Exceli