Introduzione
Usando Espressioni di analisi dei dati (DAX), è possibile aggiungere tre tipi di calcoli al modello semantico:
- Tabelle calcolate
- Colonne calcolate
- Misure
Nota
È possibile usare DAX anche per definire regole di sicurezza a livello di riga, ovvero espressioni che applicano filtri sulle tabelle del modello. Le regole, tuttavia, non sono considerate calcoli del modello e quindi esulano dall'ambito di questo modulo. Per altre informazioni, vedere Sicurezza a livello di riga con Power BI.
Tabelle calcolate
È possibile scrivere una formula DAX per aggiungere una tabella calcolata al modello. La formula può duplicare o trasformare i dati del modello esistenti oppure creare una serie di dati, per produrre una nuova tabella. I dati della tabella calcolata vengono sempre importati nel modello, quindi comportano un aumento delle dimensioni di archiviazione del modello e possono prolungare il tempo di aggiornamento dei dati.
Nota
Una tabella calcolata non può connettersi ai dati esterni. A tale scopo, è necessario usare Power Query.
Le tabelle calcolate possono essere utili in diversi scenari:
- Tabelle data
- Dimensioni con ruoli multipli
- Analisi di simulazione
Tabelle data
Le tabelle data sono necessarie per applicare speciali filtri temporali noti come funzionalità di Business Intelligence per le gerarchie temporali. Le funzioni DAX di Business Intelligence per le gerarchie temporali funzionano correttamente solo quando viene configurata una tabella data. Quando i dati di origine non includono una tabella data, è possibile crearne una come tabella calcolata usando la funzione DAX CALENDAR
o CALENDARAUTO
.
Dimensioni con ruoli multipli
Quando due tabelle del modello hanno più relazioni, è possibile che il modello includa una dimensione con ruoli multipli. Se, ad esempio, si ha una tabella denominata Sales che include due colonne data, OrderDateKey e ShipDateKey, entrambe le colonne sono correlate alla colonna Date della tabella Date. In questo caso, la tabella Date viene descritta come dimensione con ruolo perché può avere il ruolo di data dell'ordine o di data di spedizione.
I modelli di Microsoft Power BI consentono solo una relazione attiva tra le tabelle, che nel diagramma del modello è indicata da una linea continua. La relazione attiva viene usata per impostazione predefinita per propagare i filtri, che in questo caso passano dalla tabella Date alla colonna OrderDateKey della tabella Sales. Le relazioni rimanenti tra le due tabelle sono inattive. In un diagramma del modello le relazioni sono rappresentate da linee tratteggiate. Le relazioni inattive vengono usate solo quando sono espressamente richieste in una formula calcolata tramite la funzione DAX USERELATIONSHIP
.
Una progettazione migliore del modello potrebbe avere due tabelle Date, ciascuna con una relazione attiva con la tabella Sales. Gli utenti del report possono così filtrare in base alla data dell'ordine o alla data di spedizione oppure in base a entrambe contemporaneamente. Una tabella calcolata può duplicare i dati della tabella Date per creare la tabella Ship Date.
Analisi di simulazione
Power BI Desktop supporta una funzionalità denominata parametri di simulazione. Quando si crea un parametro di simulazione, viene aggiunta automaticamente al modello una tabella calcolata.
I parametri di simulazione consentono agli utenti del report di selezionare o filtrare in base ai valori archiviati nella tabella calcolata. Le formule delle misure possono usare i valori selezionati in modo significativo. Un parametro di simulazione, ad esempio, può consentire all'utente del report di selezionare un tasso di cambio di valuta ipotetico e una misura può dividere i valori dei ricavi (in una valuta locale) in base al tasso selezionato.
In particolare, le tabelle calcolate di simulazione non sono correlate ad altre tabelle del modello perché non vengono usate per propagare i filtri. Per questo motivo, sono talvolta dette tabelle disconnesse.
Colonne calcolate
È possibile scrivere una formula DAX per aggiungere una colonna calcolata a qualsiasi tabella del modello. La formula viene valutata per ogni riga della tabella e restituisce un singolo valore. Quando viene aggiunta a una tabella della modalità di archiviazione di importazione, la formula viene valutata quando il modello semantico viene aggiornato e aumenta le dimensioni di archiviazione del modello. Quando viene aggiunta a una tabella in modalità di archiviazione DirectQuery, la formula viene valutata dal database di origine sottostante quando viene eseguita una query sulla tabella.
Nel riquadro Campi le colonne calcolate sono indicate con un'icona speciale. L'esempio seguente mostra una singola colonna calcolata denominata Age nella tabella Customer.
Misure
È possibile scrivere una formula DAX per aggiungere una misura a qualsiasi tabella del modello. La formula consente di riepilogare i dati del modello. Analogamente a una colonna calcolata, la formula deve restituire un singolo valore. A differenza delle colonne calcolate, che vengono valutate in fase di aggiornamento dei dati, le misure vengono valutate in fase di query. I risultati non vengono mai archiviati nel modello.
Nel riquadro Campi le misure vengono visualizzate con l'icona di una calcolatrice. L'esempio seguente mostra tre misure nella tabella Sales: Cost, Profit e Revenue.
Occasionalmente, le misure possono essere descritte come misure esplicite. Per chiarezza, le misure esplicite sono calcoli del modello scritti in DAX e in genere vengono indicate semplicemente come misure. Esiste tuttavia anche il concetto di misure implicite. Le misure implicite sono colonne che possono essere riepilogate tramite oggetti visivi in modi semplici, ad esempio sotto forma di conteggio, somma, valore minimo, valore massimo e così via. È possibile identificare le misure implicite nel riquadro Campi perché sono associate al simbolo sigma (∑).
Nota
Qualsiasi colonna può essere riepilogata quando viene aggiunta a un oggetto visivo. Pertanto, indipendentemente dalla presenza o meno del simbolo sigma, quando vengono aggiunte a un oggetto visivo, possono essere configurate come misure implicite.
Nella modellazione tabulare non esiste un concetto di misura calcolata. La parola calcolata viene usata per descrivere le tabelle calcolate e le colonne calcolate, distinguendole dalle tabelle e dalle colonne originate da Power Query. Power Query non prevede il concetto di misura esplicita.