DAX (Data Analysis Expressions) sadrži 35 funkcija posebno namijenjenih agregiranju i usporedbi podataka tijekom vremena. Za razliku od DAX-ovih funkcija datuma i vremena, funkcije inteligencije vremena zapravo nemaju ništa slično u programu Excel. Razlog tomu je što funkcije inteligencije vremena rade s podacima koji se stalno mijenjaju, ovisno o kontekstu koji odaberete u zaokretnim tablicama i vizualizacijama dodatka Power View.
Da biste radili s funkcijama inteligencije vremena, u podatkovni model morate imati tablicu datuma. Tablica datuma mora sadržavati stupac s jednim retkom za svaki dan svake godine uključene u podatke. Taj se stupac smatra stupcem Datum (iako ga možete nazvati kako god želite). Mnogim funkcijama inteligencije vremena potreban je stupac datuma da bi izračunale prema datumima koje odaberete kao polja u izvješću. Ako, primjerice, imate mjeru koja izračunava saldo na kraju tromjesečja pomoću funkcije CLOSINGBALANCEQTR, da bi Power Pivot znao kada je zapravo kraj tromjesečja, mora se pozivati na stupac s datumima u tablici datuma da bi znao kada počinje i završava tromjesečje. Dodatne informacije o tablicama s datumima potražite u članku Tablice s datumima u dodatku Power Pivot u programu Excel i njihovo stvaranje.
Funkcije
Funkcije koje vraćaju jedan datum
Funkcije u ovoj kategoriji vraćaju jedan datum. Rezultat se zatim može koristiti kao argument za druge funkcije.
Prve dvije funkcije u ovoj kategoriji vraćaju prvi ili zadnji datum u Date_Column u trenutnom kontekstu. To može biti korisno kada želite pronaći prvi ili zadnji datum transakcije određene vrste. Za te funkcije postoji samo jedan argument, a to je naziv stupca datuma u tablici datuma.
Sljedeće dvije funkcije u ovoj kategoriji pronalaze prvi ili zadnji datum (ili bilo koju drugu vrijednost stupca), gdje izraz sadrži vrijednost koja nije BLANK. To se najčešće koristi u situacijama kao što je provjera inventara, kada želite dobiti zadnju količinu inventara, a ne znate kada je zadnji inventar obavljen.
- FIRSTNONBLANK (Date_Column, izraz)
- LASTNONBLANK (Date_Column, izraz)
Šest dodatnih funkcija koje vraćaju jedan datum funkcije su koje vraćaju prvi ili zadnji datum mjeseca, kvartala ili godine u trenutnom kontekstu izračuna.
- STARTOFMONTH (Date_Column)
- STARTOFQUARTER (Date_Column)
- STARTOFYEAR (Date_Column [YE_Date])
- ZAVRŠNI MJESEC (Date_Column)
- KRAJ TROMJESEČJA (Date_Column)
- ENDOFYEAR (Date_Column [YE_Date])
Funkcije koje vraćaju tablicu datuma
Postoji šesnaest funkcija inteligencije vremena koje vraćaju tablicu datuma. Najčešće će se te funkcije koristiti kao argument SetFilter funkciji CALCULATE . Baš kao i sve funkcije inteligencije vremena u jeziku DAX, svaka funkcija kao jedan od svojih argumenata uzima stupac s datumima.
Prvih osam funkcija u ovoj kategoriji započinje stupcem datuma u trenutnom kontekstu. Ako, primjerice, u zaokretnoj tablici koristite mjeru, u natpisima stupaca ili redaka može se nalaziti mjesec ili godina. Efekt je filtriranje stupca datuma tako da obuhvaća samo datume u trenutnom kontekstu. Polazeći od trenutnog konteksta, tih osam funkcija izračunava prethodni (ili sljedeći) dan, mjesec, kvartal ili godinu i vraća te datume u obliku tablice s jednim stupcem. "Prethodne" funkcije funkcioniraju unatrag od prvog datuma u trenutnom kontekstu, a funkcije "sljedeće" premještaju se unaprijed od zadnjeg datuma u trenutnom kontekstu.
- PRETHODNI DAN (Date_Column)
- PRETHODNIMJESEC (Date_Column)
- PREVIOUSQUARTER (Date_Column)
- PREVIOUSYEAR (Date_Column [YE_Date])
- SLJEDEĆI DAN (Date_Column)
- SLJEDEĆI MJESEC (Date_Column)
- SLJEDEĆE TROMJESEČJE (Date_Column)
- NEXTYEAR (Date_Column [YE_Date])
Sljedeće četiri funkcije u ovoj kategoriji slične su, ali umjesto da izračunavaju prethodno (ili sljedeće) razdoblje, one izračunavaju skup datuma u razdoblju koje je "od mjeseca do današnjeg dana" (ili od tromjesečja do današnjeg datuma, ili od početka godine ili u isto razdoblje prethodne godine). Sve te funkcije izvode izračune pomoću zadnjeg datuma u trenutnom kontekstu. Imajte na umu da funkcija SAMEPERIODLASTYEAR zahtijeva da trenutni kontekst sadrži skup uzastopnih datuma. Ako trenutni kontekst nije skup uzastopnih datuma, funkcija SAMEPERIODLASTYEAR vratit će pogrešku.
- DATESMTD (Date_Column)
- DATESQTD (Date_Column)
- DATESYTD (Date_Column [YE_Date])
- SAMEPERIODLASTYEAR (Date_Column)
Posljednje četiri funkcije u ovoj kategoriji su malo složenije, a ujedno i malo moćnije. Te se funkcije koriste za prelazak sa skupa datuma koji su u trenutnom kontekstu na novi skup datuma.
- 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)
DATESBETWEEN izračunava skup datuma između navedenog datuma početka i datuma završetka. Preostale tri funkcije pomiču određeni broj vremenskih intervala iz trenutnog konteksta. Interval može biti dan, mjesec, kvartal ili godina. Te funkcije olakšavaju promjenu vremenskog intervala za izračun za bilo što od sljedećeg:
- Povratak dvije godine unatrag
- Vraćanje mjesec dana unatrag
- Prijelaz unaprijed tri četvrtine
- Povratak 14 dana unatrag
- Prijelaz unaprijed 28 dana
U svakom slučaju morate samo odrediti interval i koliko će se intervala pomaknuti. Pozitivni će se interval pomaknuti unaprijed u vremenu, a negativni će se pomaknuti unatrag u vremenu. Sam interval određen je ključnom riječju DAN, MJESEC, KVARTAL ili GODINA. Te ključne riječi nisu nizovi pa ih ne smijete pisati u navodnicima.
Funkcije koje procjenjuju izraze tijekom određenog vremenskog razdoblja
Ova kategorija funkcija procjenjuje izraz tijekom određenog vremenskog razdoblja. Isto možete postići korištenjem funkcije CALCULATE i drugih funkcija inteligencije vremena. Na primjer:
= TOTALMTD (izraz, Date_Column [, PostaviFiltar])
potpuno je isto kao:
= CALCULATE (izraz, DATESMTD (Date_Column)[, SetFilter])
No te je funkcije inteligencije vremena jednostavnije koristiti kada odgovaraju problemu koji treba riješiti:
- TOTALMTD (izraz, Date_Column [, SetFilter])
- TOTALQTD (izraz, Date_Column [, SetFilter])
- TOTALYTD (izraz, Date_Column [, SetFilter] [,YE_Date]) *
U ovoj kategoriji spada i grupa funkcija koje izračunavaju početna i završna salda. Postoje određeni koncepti koje biste trebali razumjeti s tim funkcijama. Kao što vam se možda čini očitim, početni saldo za bilo koje razdoblje jednak je završnom računu za prethodno razdoblje. Završni saldo obuhvaća sve podatke do kraja razdoblja, a početni saldo ne uključuje podatke iz trenutnog razdoblja.
Te funkcije uvijek vraćaju vrijednost izraza koji se procjenjuje za određenu vremensku točku. Točka u vremenu do koje nam je stalo uvijek je zadnja moguća vrijednost datuma u kalendarskom razdoblju. Početni saldo temelji se na posljednjem datumu u prethodnom razdoblju, a završni saldo na zadnjem datumu u trenutnom razdoblju. Trenutno je razdoblje uvijek određeno zadnjim datumom u kontekstu trenutnog datuma.
- OPENINGBALANCEMONTH (izraz, Date_Column [,SetFilter])
- OPENINGBALANCEQUARTER Četvrtina (izraz, Date_Column [,SetFilter])
- OPENINGBALANCEYEAR (izraz, Date_Column [,SetFilter] [YE_Date])
- CLOSINGBALANCEMONTH (izraz, Date_Column [,SetFilter])
- CLOSINGBALANCEQUARTER (izraz, Date_Column [,SetFilter])
- CLOSINGBALANCEYEAR (izraz, Date_Column [,SetFilter] [YE_Date])
Dodatni resursi
Članci: Tablice s datumima u dodatku Power Pivot u programu Excel i njihovo stvaranje
Referenca: Referenca za funkciju DAX na Office.com
Primjeri: Modeliranje i analiza podataka dobiti i gubitka pomoću dodatka Microsoft PowerPivot u programu Excel