DAX (Data Analysis Expressions) include 35 funzioni specifiche per l'aggregazione e il confronto dei dati nel tempo. A differenza delle funzioni di data e ora di DAX, le funzioni di intelligence basata sulle lance temporali non hanno nulla di simile in Excel. Ciò è dovuto al fatto che le funzioni di Business Intelligence per le gerarchie temporali funzionano con dati in continua evoluzione, a seconda del contesto selezionato nelle visualizzazioni Tabelle pivot e Power View.
Per usare le funzioni di intelligence basata sulle gerarchie temporali, è necessario che nel modello di dati sia inclusa una tabella data. La tabella data deve includere una colonna con una riga per ogni giorno di ogni anno incluso nei dati. Questa colonna è considerata la colonna Data (anche se può essere denominata come si preferisce). Molte funzioni di business intelligence per le gerarchie temporali richiedono che la colonna della data esegua il calcolo in base alle date selezionate come campi in un rapporto. Se, ad esempio, si dispone di una misura che calcola un saldo di chiusura di fine trimestre usando la funzione CHIUSURAEQUILIBRIOQTR, affinché Power Pivot sappia quando si trova effettivamente la fine del trimestre, deve fare riferimento alla colonna Data nella tabella Data per sapere quando inizia e quando finisce il trimestre. Per altre informazioni sulle tabelle data, vedere Informazioni e creare tabelle data in Power Pivot in Excel.
Funzioni
Funzioni che restituiscono una singola data
Le funzioni di questa categoria restituiscono una singola data. Il risultato può quindi essere usato come argomento per altre funzioni.
Le prime due funzioni di questa categoria restituiscono la prima o l'ultima data nel Date_Column nel contesto corrente. Ciò può essere utile quando si desidera trovare la prima o l'ultima data in cui si è verificata una transazione di un tipo particolare. Per queste funzioni è sufficiente un solo argomento, ovvero il nome della colonna della data nella tabella data.
- FIRSTDATE (Date_Column)
- ULTIMA DATA (Date_Column)
Le due funzioni successive di questa categoria trovano la prima o l'ultima data (o anche qualsiasi altro valore di colonna) in cui un'espressione contiene un valore non vuoto. Questa opzione viene usata più spesso in situazioni come l'inventario, in cui si vuole ottenere l'ultimo importo dell'inventario e non si sa quando è stato preso l'ultimo inventario.
- FIRSTNONBLANK (Date_Column, espressione)
- LASTNONBLANK (Date_Column, espressione)
Altre sei funzioni che restituiscono una singola data sono le funzioni che restituiscono la prima o l'ultima data di un mese, trimestre o anno nel contesto corrente del calcolo.
- INIZIOMESE (Date_Column)
- INIZIO TRIMESTRE (Date_Column)
- INIZIOANNO (Date_Column [,YE_Date])
- ENDOFMONTH (Date_Column)
- ENDOFQUARTER (Date_Column)
- ANNO ENDOFYEAR (Date_Column [,YE_Date])
Funzioni che restituiscono una tabella di date
Esistono sedici funzioni di intelligence basata sulle età che restituiscono una tabella di date. Nella maggior parte dei casi, queste funzioni verranno usate come argomento SetFilter per la funzione CALCULARE . Come tutte le funzioni di intelligence per le tempistiche in DAX, ogni funzione accetta una colonna data come uno degli argomenti.
Le prime otto funzioni di questa categoria iniziano con una colonna di tipo data in un contesto corrente. Se si usa una misura in una tabella pivot, ad esempio nelle etichette di colonna o nelle etichette di riga potrebbe essere presente un mese o un anno. L'effetto netto è che la colonna della data viene filtrata per includere solo le date per il contesto corrente. A partire dal contesto corrente, queste otto funzioni calcolano il giorno, il mese, il trimestre o l'anno precedente (o successivo) e restituiscono tali date sotto forma di tabella a colonna singola. Le funzioni "previous" funzionano a ritroso dalla prima data nel contesto corrente e le funzioni "next" si spostano in avanti dall'ultima data nel contesto corrente.
- GIORNO PRECEDENTE (Date_Column)
- MESE PRECEDENTE (Date_Column)
- TRIMESTRE PRECEDENTE (Date_Column)
- ANNO PRECEDENTE (Date_Column [,YE_Date])
- GIORNO SUCCESSIVO (Date_Column)
- NEXTMONTH (Date_Column)
- NEXTQUARTER (Date_Column)
- ANNO SUCCESSIVO (Date_Column [,YE_Date])
Le quattro funzioni successive di questa categoria sono simili, ma invece di calcolare un periodo precedente (o successivo), calcolano l'insieme di date nel periodo che è "da inizio mese" (o da inizio trimestre, o da inizio anno, o nello stesso periodo dell'anno precedente). Tutte queste funzioni eseguono i calcoli utilizzando l'ultima data nel contesto corrente. Si noti che SAMEPERIODLASTYEAR richiede che il contesto corrente contenga un set di date contiguo. Se il contesto corrente non è un set di date contiguo, SAMEPERIODLASTYEAR restituirà un errore.
- DATA.DATA.MTD (Date_Column)
- DATESQTD (Date_Column)
- DATESYTD (Date_Column [,YE_Date])
- SAMEPERIODLASTYEAR (Date_Column)
Le ultime quattro funzioni di questa categoria sono un po' più complesse e anche un po' più potenti. Queste funzioni vengono usate per passare dal set di date del contesto corrente a un nuovo set di date.
- DATEADD (Date_Column, Number_of_Intervals, intervallo)
- DATA.TRA (Date_Column, Start_Date, End_Date)
- DATESINPERIOD (Date_Column, Start_Date, Number_of_Intervals, intervallo)
- PARALLELPERIOD (Date_Column, Number_of_Intervals, intervallo)
DATA.TRA calcola il set di date compreso tra la data di inizio e la data di fine specificate. Le altre tre funzioni spostano un certo numero di intervalli di tempo dal contesto corrente. L'intervallo può essere giorno, mese, trimestre o anno. Queste funzioni semplificano lo spostamento dell'intervallo di tempo per un calcolo in uno dei modi seguenti:
- Indietro di due anni
- Torna indietro di un mese
- Andare avanti di tre quarti
- Indietro di 14 giorni
- Avanti di 28 giorni
In ogni caso, è sufficiente specificare quale intervallo e quanti di questi intervalli spostare. Un intervallo positivo si sposterà avanti nel tempo, mentre un intervallo negativo si sposterà indietro nel tempo. L'intervallo stesso è specificato da una parola chiave di GIORNO, MESE, TRIMESTRE o ANNO. Queste parole chiave non sono stringhe, quindi non devono essere racchiuse tra virgolette.
Funzioni che valutano le espressioni in un periodo di tempo
Questa categoria di funzioni valuta un'espressione in un periodo di tempo specificato. È possibile ottenere la stessa operazione usando CALCOLA e altre funzioni di intelligence per le gerarchie temporali. Ad esempio,
= TOTALMTD (Espressione, Date_Column [, SetFilter])
è esattamente uguale a:
= CALCULATE (espressione, DATA.INVIO (Date_Column)[, SetFilter])
Tuttavia, è più facile usare queste funzioni di intelligence basata sulle gerarchie temporali quando sono adatte al problema che deve essere risolto:
- TOTALMTD (Espressione, Date_Column [, SetFilter])
- TOTALQTD (espressione, Date_Column [, SetFilter])
- TOTALYTD (Espressione, Date_Column [, SetFilter] [,YE_Date]) *
Anche in questa categoria ci sono un gruppo di funzioni che calcolano i saldi di apertura e chiusura. Ci sono alcuni concetti che dovresti capire con queste particolari funzioni. Innanzitutto, come si potrebbe pensare ovvio, il saldo di apertura per qualsiasi periodo è lo stesso del saldo di chiusura per il periodo precedente. Il saldo di chiusura include tutti i dati fino alla fine del periodo, mentre il saldo di apertura non include i dati del periodo corrente.
Queste funzioni restituiscono sempre il valore di un'espressione valutata in base a un momento specifico. Il momento a cui ci interessa è sempre l'ultimo valore di data possibile in un periodo di calendario. Il saldo di apertura si basa sull'ultima data del periodo precedente, mentre il saldo di chiusura si basa sull'ultima data del periodo corrente. Il periodo corrente è sempre determinato dall'ultima data nel contesto della data corrente.
- OPENINGBALANCEMONTH (espressione, Date_Column [,SetFilter])
- APERTURABILANCIERETRIMESTRE Trimestre (espressione, Date_Column [,SetFilter])
- OPENINGBALANCEYEAR (Espressione, Date_Column [,SetFilter] [,YE_Date])
- CLOSINGBALANCEMONTH (Espressione, Date_Column [,SetFilter])
- CLOSINGBALANCEQUARTER (Espressione, Date_Column [,SetFilter])
- CLOSINGBALANCEYEAR (Espressione, Date_Column [,SetFilter] [,YE_Date])
Altre risorse
Articoli: Informazioni e creazione di tabelle data in PowerPivot in Excel
Riferimento: informazioni di riferimento sulle funzioni DAX in Office.com
Esempi: modellazione e analisi dei dati di profitti e perdite con Microsoft PowerPivot in Excel