Excel DAX - Time Intelligence

DAX ha una funzionalità importante e potente, denominata Time Intelligence. L'intelligenza temporale consente di scrivere formule DAX che fanno riferimento ai periodi di tempo da utilizzare nelle tabelle pivot.

DAX dispone di 35 funzioni di time-intelligence specifiche per l'aggregazione e il confronto dei dati nel tempo. Tuttavia, queste funzioni DAX hanno alcuni vincoli sui dati che è necessario comprendere e lavorare con cautela per evitare errori.

Perché Time Intelligence rende potente DAX?

Le funzioni di time intelligence funzionano con dati che cambiano costantemente, a seconda del contesto selezionato nelle tabelle pivot e nelle visualizzazioni di Power View. Come sapete, la maggior parte dell'analisi dei dati implica il riepilogo dei dati su periodi di tempo, il confronto dei valori dei dati attraverso i periodi di tempo, la comprensione delle tendenze e l'adozione di decisioni basate su proiezioni future.

Ad esempio, potresti voler sommare gli importi delle vendite per il mese passato in termini di prodotto e confrontare i totali con quelli degli altri mesi dell'anno fiscale. Ciò significa che è necessario utilizzare le date come un modo per raggruppare e aggregare le transazioni di vendita per un determinato periodo di tempo.

Qui è dove puoi osservare la potenza di DAX. È possibile utilizzare le funzioni di intelligenza temporale DAX per definire campi calcolati che consentono di analizzare i dati nel tempo, senza dover modificare le selezioni di data nelle tabelle pivot. Questo ti semplifica il lavoro. Inoltre, puoi creare tabelle pivot che non sarebbero possibili in nessun altro modo.

Requisiti per le funzioni di intelligenza temporale DAX

Le funzioni di intelligenza temporale DAX hanno determinati requisiti. Se questi requisiti non vengono soddisfatti, potrebbero verificarsi errori o potrebbero non funzionare correttamente. Quindi, puoi fare riferimento a questi requisiti anche come regole o vincoli. Di seguito sono riportati alcuni requisiti / regole / vincoli delle funzioni di time intelligence DAX:

  • È necessario disporre di una tabella delle date nel modello di dati.

  • La tabella della data deve includere una colonna considerata come la colonna Data da DAX. È possibile denominare la colonna nel modo desiderato, ma deve soddisfare le seguenti condizioni: o La colonna della data deve contenere un insieme contiguo di date che copre ogni giorno nel periodo di tempo in cui si stanno analizzando i dati.

    • Ogni data deve esistere una sola volta nella colonna della data.

    • Non puoi saltare nessuna data (ad esempio, non puoi saltare le date del fine settimana).

  • Le funzioni di time intelligence DAX funzionano solo su un calendario standard e presuppongono l'inizio dell'anno come 1 gennaio e la fine dell'anno come 31 dicembre, con i mesi dell'anno ei giorni di ogni mese come un anno solare.

Tuttavia, è possibile personalizzare un calendario standard per diversi esercizi finanziari. È buona norma verificare i requisiti di cui sopra prima di utilizzare qualsiasi funzione di time intelligence.

Per altri dettagli sulle tabelle delle date e sul loro utilizzo nelle formule DAX, fare riferimento al tutorial = modellazione dei dati con DAX in questa libreria di esercitazioni.

Funzioni di DAX Time Intelligence - Categorie

Le funzioni di DAX Time Intelligence possono essere classificate come segue:

  • Funzioni DAX che restituiscono una singola data.
  • Funzioni DAX che restituiscono una tabella di date.
  • Funzioni DAX che valutano le espressioni in un periodo di tempo.

Funzioni DAX che restituiscono una singola data

Le funzioni DAX in questa categoria restituiscono una singola data.

Ci sono 10 funzioni DAX in questa categoria:

Sr.No. Funzione DAX e valore restituito
1

FIRSTDATE (Date_Column)

Restituisce la prima data in Date_Column nel contesto corrente.

2

LASTDATE (Date_Column)

Restituisce l'ultima data in Date_Column nel contesto corrente.

3

FIRSTNONBLANK (Date_Column, Expression)

Restituisce la prima data in cui un'espressione ha un valore non vuoto.

4

LASTNONBLANK (Date_Column, Expression)

Restituisce l'ultima data in cui un'espressione ha un valore non vuoto.

5

STARTOFMONTH (Date_Column)

Restituisce la prima data di un mese nel contesto corrente.

6

ENDOFMONTH (Date_Column)

Restituisce l'ultima data di un mese nel contesto corrente.

7

STARTOFQUARTER (Date_Column)

Restituisce la prima data di un trimestre nel contesto corrente.

8

ENDOFQUARTER (Date_Column)

Restituisce l'ultima data di un trimestre nel contesto corrente.

9

STARTOFYEAR (Date_Column, [YE_Date])

Restituisce la prima data di un anno nel contesto corrente.

10

ENDOFYEAR (Date_Column, [YE_Date])

Restituisce l'ultima data di un anno nel contesto corrente.

Funzioni DAX che restituiscono una tabella di date

Le funzioni DAX in questa categoria restituiscono una tabella di date. Queste funzioni verranno utilizzate principalmente come argomento SetFilter per la funzione DAX - CALCULATE.

Ci sono 16 funzioni DAX in questa categoria. Otto (8) di queste funzioni DAX sono le funzioni "precedente" e "successivo".

  • Le funzioni "precedente" e "successivo" iniziano con una colonna della data nel contesto corrente e calcolano il giorno, il mese, il trimestre o l'anno precedente o successivo.

  • Le funzioni "precedente" funzionano all'indietro dalla prima data nel contesto corrente e le funzioni "successivo" si spostano in avanti dall'ultima data nel contesto corrente.

  • Le funzioni "precedente" e "successivo" restituiscono le date risultanti sotto forma di una tabella a colonna singola.

Sr.No. Funzione DAX e valore restituito
1

PREVIOUSDAY (Date_Column)

Restituisce una tabella che contiene una colonna di tutte le date che rappresentano il giorno precedente alla prima data in Date_Column nel contesto corrente.

2

NEXTDAY (Date_Column)

Restituisce una tabella che contiene una colonna di tutte le date del giorno successivo, in base alla prima data specificata in Date_Column nel contesto corrente.

3

PREVIOUSMONTH (Date_Column)

Restituisce una tabella che contiene una colonna di tutte le date del mese precedente, in base alla prima data in Date_Column nel contesto corrente.

4

NEXTMONTH (Date_Column)

Restituisce una tabella che contiene una colonna di tutte le date del mese successivo, in base alla prima data in Date_Column nel contesto corrente.

5

PREVIOUSQUARTER (Date_Column)

Restituisce una tabella che contiene una colonna di tutte le date del trimestre precedente, in base alla prima data in Date_Column nel contesto corrente.

6

NEXTQUARTER (Date_Column)

Restituisce una tabella che contiene una colonna di tutte le date del trimestre successivo, in base alla prima data specificata in Date_Column nel contesto corrente.

7

PREVIOUSYEAR (Date_Column, [YE_Date])

Restituisce una tabella che contiene una colonna di tutte le date dell'anno precedente, data l'ultima data in Date_Column nel contesto corrente.

8

NEXTYEAR (Date_Column, [YE_Date])

Restituisce una tabella che contiene una colonna di tutte le date dell'anno successivo, in base alla prima data in Date_Column nel contesto corrente.

Quattro (4) funzioni DAX calcolano un insieme di date in un periodo. Queste funzioni eseguono i calcoli utilizzando l'ultima data nel contesto corrente.

Sr.No. Funzione DAX e valore restituito
1

DATESMTD (Date_Column)

Restituisce una tabella che contiene una colonna delle date per il mese fino ad oggi, nel contesto corrente.

2

DATESQTD (Date_Column)

Restituisce una tabella che contiene una colonna delle date per il trimestre fino ad oggi, nel contesto corrente.

3

DATESYTD (Date_Column, [YE_Date])

Restituisce una tabella che contiene una colonna delle date per l'anno in corso, nel contesto corrente.

4

SAMEPERIODLASTYEAR (Date_Column)

Restituisce una tabella che contiene una colonna di date spostate indietro di un anno rispetto alle date nella Date_Column specificata, nel contesto corrente.

Note- SAMEPERIODLASTYEAR richiede che il contesto corrente contenga un insieme di date contiguo.

Se il contesto corrente non è un insieme di date contiguo, SAMEPERIODLASTYEAR restituirà un errore.

  • Quattro (4) funzioni DAX vengono utilizzate per passare dal set di date che si trovano nel contesto corrente a un nuovo set di date.

    Queste funzioni DAX sono più potenti delle precedenti.

    • Funzioni DAX: DATEADD, DATESINPERIOD e PARALLELPERIOD spostano un certo numero di intervalli di tempo dal contesto corrente. L'intervallo può essere giorno, mese, trimestre o anno, rappresentato dalle parole chiave: GIORNO, MESE, TRIMESTRE e ANNO rispettivamente.

      Per esempio:

  • Sposta indietro di 2 giorni.

  • Vai avanti di 5 mesi.

  • Vai avanti di un mese da oggi.

  • Torna allo stesso trimestre dell'ultimo anno.

      Se l'argomento della funzione - numero di intervalli (valore intero) è positivo, shift è avanti e se è negativo, shift è indietro.

    • Funzione DAX: DATESBETWEEN calcola il set di date tra la data di inizio specificata e la data di fine.

Sr.No. Funzione DAX e valore restituito
1

DATEADD (Date_Column, Number_of_Intervals, Interval)

Restituisce una tabella che contiene una colonna di date, spostata avanti o indietro nel tempo del numero di intervalli specificato dalle date nel contesto corrente.

2

DATESINPERIOD (Date_Column, Start_Date, Number_of_Intervals, Interval)

Restituisce una tabella che contiene una colonna di date che inizia con start_date e continua per il number_of_intervals specificato.

3

PARALLELPERIOD (Date_Column, Number_of_Intervals, Interval)

Restituisce una tabella che contiene una colonna di date che rappresenta un periodo parallelo alle date nella Date_Column specificata nel contesto corrente, con le date spostate di un numero di intervalli avanti o indietro nel tempo.

4

DATESBETWEEN (Date_Column, Start_Date, End_Date)

Restituisce una tabella che contiene una colonna di date che inizia con start_date e continua fino a end_date.

Funzioni DAX che valutano le espressioni in un periodo di tempo

Le funzioni DAX in questa categoria valutano un'espressione in un periodo di tempo specificato.

Ci sono nove (9) funzioni DAX in questa categoria:

  • È possibile utilizzare tre (3) funzioni DAX in questa categoria per valutare una determinata espressione in un periodo di tempo specificato.

Sr.No. Funzione DAX e valore restituito
1

TOTALMTD (Expression, Date_Column, [SetFilter])

Valuta il valore dell'espressione per le date nel mese fino ad oggi, nel contesto corrente.

2

TOTALQTD (Expression, Date_Column, [SetFilter])

Valuta il valore dell'espressione per le date nel trimestre fino ad oggi, nel contesto corrente.

3

TOTALYTD (Expression, Date_Column, [SetFilter], [YE_Date])

Valuta il valore dell'espressione per le date dell'anno fino ad oggi, nel contesto corrente

  • Sei (6) funzioni DAX in questa categoria possono essere utilizzate per calcolare i saldi di apertura e chiusura.

    • Il saldo di apertura per qualsiasi periodo è lo stesso del saldo di chiusura del 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 DAX restituiscono sempre il valore di un'espressione valutata per un momento specifico.

  • Il momento a cui teniamo è 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.

Sr.No. Funzione DAX e valore restituito
1

OPENINGBALANCEMONTH (Expression, Date_Column, [SetFilter])

Valuta l'espressione alla prima data del mese nel contesto corrente.

2

CLOSINGBALANCEMONTH (Expression, Date_Column, [SetFilter])

Valuta l'espressione nell'ultima data del mese nel contesto corrente.

3

OPENINGBALANCEQUARTER (Expression, Date_Column, [SetFilter])

Valuta l'espressione alla prima data del trimestre, nel contesto corrente.

4

CLOSINGBALANCEQUARTER (Expression, Date_Column, [SetFilter])

Valuta l'espressione nell'ultima data del trimestre nel contesto corrente.

5

OPENINGBALANCEYEAR (Expression, Date_Column, [SetFilter], [YE_Date])

Valuta l'espressione alla prima data dell'anno nel contesto corrente.

6

CLOSINGBALANCEYEAR (Expression, Date_Column, [SetFilter], [YE_Date])

Valuta l'espressione nell'ultima data dell'anno nel contesto corrente.