TOP

DAX-Lezione 2. Funzione CALCULATE

Descrizione

La prima funzione per iniziare ad apprendere DAX è CALCULATE. Questa funzione non ha una controparte esatta in Excel, ma è paragonabile alle funzioni SUMIFS E COUNTIFS . In breve, questa funzione applica filtri ad altre funzioni di calcolo, quindi possiamo selezionare e includere nei calcoli solo i dati che ci servono.

Sintassi della funzione CALCULATE()

=CALCULATE(< espressione statistica >, < filtro1 >, < filtro2 >, ...)

< espressione statistica >

Espressione statistica dovrebbe restituirci il risultato del calcolo (un valore, non una tabella). Per questo motivo in questa impostazione vengono spesso utilizzate funzioni statistiche del tipo SUM , MINIMO , MASSIMO , CONTI eccetera.

  1. SUM([ Nome della colonna ])
  2. SUM([ NomeColonne1 ]) / MASSIMO([ NomeColonne2 ])
  3. Nome di un altro campo di calcolo (misura)

< filtro1 >, < filtro2 >,...

Filtro definisce l'intervallo di dati su cui lavorare. Le condizioni per la selezione dei valori sono specificate qui.

  1. [ Nome della colonna ] = Auto
  2. [ Nome della colonna ] >= 6
  3. ALL( "NomeTabella" ) O ALL( "NomeTabella" [ Nome della colonna ] )
  4. FILTER ( "NomeTabella" , "NomeTabella" [ Nome della colonna ] = " Verde ")

Supponiamo di avere una tabella del genere, che si chiama Demo e caricato PowerPivot .

Creiamo una tabella riepilogativa basata su di essa e contiamo il numero di record per ciascun prodotto.

Ora creiamo un nuovo campo di calcolo (Measure) Count_All_Product nella nostra tabella pivot, che visualizzerà il numero totale di record su tutte le righe.

Come abbiamo ottenuto i numeri nel campo di calcolo Count_All_Product 16 ? La spiegazione è che abbiamo rimosso per questo campo tutti i filtri applicati nella tabella pivot (ogni riga nella tabella pivot è un filtro separato), utilizzando la funzione ALL() . Cioè, in altre parole, una funzione ALL (Demo) dà il comando per rimuovere tutti i filtri per il campo calcolato Count_All_Product applicati alla tabella Demo .

Aggiungiamo un altro campo (City) in righe per vedere le vendite di ciascun prodotto per città:

Vediamo che i numeri sono in campo Count of Rows modifica, ma non nel campo di calcolo Count_All_Product. È corretto, perché per l'ultimo abbiamo rimosso tutti i filtri nella formula. Ora apportiamo alcune piccole modifiche alla nostra formula e vediamo il risultato.

=CALCULATE(COUNTROWS(Demo);ALL(Demo[Product]))

Abbiamo cambiato l'argomento nella funzione ALL() sostituendo Demo SU Demo[Product] . Ora i filtri non verranno rimossi per l'intera tabella Demo , ma solo per la relativa colonna Demo[Product] .

Quindi vediamo cosa c'è in campo Count of Rows i filtri sono attivi Product E City e solo un filtro sul campo calcolato Count_All_Product City .