DAX (Data Analysis Expressions) are 35 de funcții specifice pentru agregarea și compararea datelor în timp. Spre deosebire de funcțiile DAX pentru dată și oră, funcțiile Time intelligence nu au nimic asemănător în Excel. Aceasta deoarece funcțiile time intelligence funcționează cu date care sunt în continuă schimbare, în funcție de contextul pe care îl selectați în vizualizările PivotTable și Power View.
Pentru a lucra cu funcțiile de tip "time intelligence", trebuie să includeți un tabel de date în modelul de date. Tabelul de date trebuie să includă o coloană cu un rând pentru fiecare zi din fiecare an inclusă în datele dvs. Această coloană este considerată a fi coloana Dată (deși poate fi denumită cum doriți). Multe funcții de time intelligence necesită coloana de date pentru a calcula în funcție de datele pe care le selectați ca câmpuri într-un raport. De exemplu, dacă aveți o măsură care calculează un sold de sfârșit de trimestru de încheiere utilizând funcția CLOSINGBALANCEQTR, pentru ca Power Pivot să știe când este de fapt sfârșitul trimestrului, acesta trebuie să facă referire la coloana de date din tabelul de date pentru a ști când începe și când se termină trimestrul. Pentru a afla mai multe despre tabelele de date, consultați Înțelegerea și crearea tabelelor de date în Power Pivot în Excel.
Funcții
Funcții care returnează o dată unică
Funcțiile din această categorie returnează o dată unică. Rezultatul poate fi apoi utilizat ca argumente pentru alte funcții.
Primele două funcții din această categorie returnează prima sau ultima dată din Date_Column în contextul curent. Acest lucru poate fi util atunci când doriți să aflați prima sau ultima dată la care ați avut o tranzacție de un anumit tip. Aceste funcții preiau un singur argument, numele coloanei de date din tabelul de date.
- PRIMA DATĂ (Date_Column)
- ULTIMA DATĂ (Date_Column)
Următoarele două funcții din această categorie găsesc prima sau ultima dată (sau orice altă valoare de coloană) în care o expresie are o valoare care nu este necompletată. Aceasta este utilizată cel mai adesea în situații precum inventarul, când doriți să obțineți ultima cantitate de inventar și nu știți când a fost făcut ultimul inventar.
- FIRSTNONBLANK (Date_Column, expresie)
- LASTNONBLANK (Date_Column, expresie)
Alte șase funcții care returnează o singură dată sunt funcțiile care returnează prima sau ultima dată a unei luni, a unui trimestru sau a unui an în contextul curent al calculului.
- STARTOFMONTH (Date_Column)
- ÎNCEPUT TRIMESTRU (Date_Column)
- STARTOFYEAR (Date_Column [,YE_Date])
- ENDOFMONTH (Date_Column)
- ENDOFQUARTER (Date_Column)
- ENDOFYEAR (Date_Column [,YE_Date])
Funcții care returnează un tabel de date
Există șaisprezece funcții time intelligence care returnează un tabel de date. Cel mai adesea, aceste funcții vor fi utilizate ca argument SetFilter pentru funcția CALCULATE . La fel ca toate funcțiile de time intelligence din DAX, fiecare funcție preia o coloană de date ca argument al său.
Primele opt funcții din această categorie încep cu o coloană de date într-un context curent. De exemplu, dacă utilizați o măsură într-un raport PivotTable, poate exista o lună sau un an fie pe etichetele de coloană, fie pe etichetele de rând. Efectul net este coloana de date filtrată pentru a include numai datele din contextul curent. Pornind de la acel context curent, aceste opt funcții calculează apoi ziua, luna, trimestrul sau anul anterior (sau următor) și returnează acele date sub forma unui tabel cu o singură coloană. Funcțiile "anterioare" funcționează înapoi de la prima dată în contextul curent, iar funcțiile "următoarea" merg înainte de la ultima dată în contextul curent.
- PREVIOUSDAY (Date_Column)
- LUNA ANTERIOARĂ (Date_Column)
- TRIMESTRUL ANTERIOR (Date_Column)
- PREVIOUSYEAR (Date_Column [,YE_Date])
- ZIUA URMĂTOARE (Date_Column)
- LUNA URMĂTOARE (Date_Column)
- TRIMESTRUL URMĂTOR (Date_Column)
- NEXTYEAR (Date_Column [,YE_Date])
Următoarele patru funcții din această categorie sunt similare, dar, în loc să calculeze o perioadă anterioară (sau următoare), ele calculează setul de date din perioada care este "lună curentă" (sau trimestru-curent, sau anul curent sau în aceeași perioadă a anului precedent). Toate aceste funcții efectuează calculele folosind ultima dată din contextul curent. Rețineți că SAMEPERIODLASTYEAR necesită ca contextul curent să conțină un set contiguu de date. Dacă contextul curent nu este un set contiguu de date, SAMEPERIODLASTYEAR va returna o eroare.
- DATE (Date_Column)
- DATE QTTD (Date_Column)
- DATESYTD (Date_Column [,YE_Date])
- SAMEPERIODLASTYEAR (Date_Column)
Ultimele patru funcții din această categorie sunt puțin mai complexe și, de asemenea, puțin mai puternice. Aceste funcții sunt utilizate pentru a trece de la setul de date care se află în contextul curent la un nou set de date.
- 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 calculează setul de date dintre data de început și data de sfârșit specificată. Restul de trei funcții deplasează un număr de intervale de timp față de contextul curent. Intervalul poate fi zi, lună, trimestru sau an. Aceste funcții facilitează deplasarea intervalului de timp pentru un calcul după oricare dintre următoarele:
- Întoarceți-vă cu doi ani în urmă
- Mergeți înapoi cu o lună
- Mergeți înainte cu trei sferturi
- Mergeți înapoi cu 14 zile
- Mergeți înainte cu 28 de zile
În fiecare caz, trebuie doar să specificați ce interval și câte din aceste intervale să se mute. Un interval pozitiv se va deplasa înainte în timp, în timp ce un interval negativ se va deplasa înapoi în timp. Intervalul în sine este specificat printr-un cuvânt cheie DAY, MONTH, QUARTER sau YEAR. Aceste cuvinte cheie nu sunt șiruri, deci nu ar trebui să fie între ghilimele.
Funcții care evaluează expresiile într-o perioadă de timp
Această categorie de funcții evaluează o expresie într-o perioadă de timp specificată. Puteți realiza același lucru utilizând CALCULATE și alte funcții de tip "time intelligence". De exemplu, blocnotesurile
= TOTALMTD (expresie, Date_Column [, SetFilter])
este exact la fel ca:
= CALCULATE (expresie, DATESMTD (Date_Column)[, SetFilter])
Cu toate acestea, este mai ușor să utilizați aceste funcții de time intelligence atunci când sunt potrivite pentru problema care trebuie rezolvată:
- TOTALMTD (expresie, Date_Column [, SetFilter])
- TOTALQTD (expresie, Date_Column [, SetFilter])
- TOTALYTD (expresie, Date_Column [, SetFilter] [,YE_Date]) *
Tot în această categorie se află un grup de funcții care calculează soldurile de deschidere și de închidere. Există anumite concepte pe care ar trebui să le înțelegeți cu aceste funcții particulare. În primul rând, după cum ați putea crede evident, soldul de deschidere pentru orice perioadă este același cu soldul de închidere pentru perioada anterioară. Soldul de închidere include toate datele existente până la sfârșitul perioadei, în timp ce soldul de deschidere nu include date din perioada curentă.
Aceste funcții returnează întotdeauna valoarea unei expresii evaluate pentru un anumit moment în timp. Momentul care ne interesează este întotdeauna ultima valoare de dată posibilă dintr-o perioadă de calendar. Soldul de deschidere se bazează pe ultima dată a perioadei anterioare, iar soldul de închidere se bazează pe ultima dată din perioada curentă. Perioada curentă este întotdeauna determinată de ultima dată din contextul datei curente.
- OPENINGBALANCEMONTH (expresie, Date_Column [,SetFilter])
- OPENINGBALANCEQUARTER Trimestru (expresie, Date_Column [,SetFilter])
- OPENINGBALANCEYEAR (expresie, Date_Column [,SetFilter] [,YE_Date])
- CLOSINGBALANCEMONTH (expresie, Date_Column [,SetFilter])
- CLOSINGBALANCEQUARTER (expresie, Date_Column [,SetFilter])
- CLOSINGBALANCEYEAR (expresie, Date_Column [,SetFilter] [,YE_Date])
Resurse suplimentare
Articole: Înțelegerea și crearea tabelelor de date în Power Pivot în Excel
Referință: Referința funcțiilor DAX de pe Office.com
Exemple: Modelarea și analiza datelor de profit și pierdere cu Microsoft PowerPivot în Excel