In questa sezione vengono forniti collegamenti ad esempi che illustrano l'uso delle formule DAX negli scenari seguenti.
- Esecuzione di calcoli complessi
- Lavorare con testo e date
- Valori condizionali e test per gli errori
- Uso della funzionalità di Business Intelligence per le ger
- Classificazione e confronto di valori
In questo articolo
Attività iniziali
Visita il wiki del Centro risorse DAX , dove puoi trovare tutti i tipi di informazioni su DAX, inclusi blog, esempi, whitepaper e video forniti da professionisti leader del settore e Microsoft.
Scenari: esecuzione di calcoli complessi
Le formule DAX consentono di eseguire calcoli complessi che includono aggregazioni personalizzate, filtri e l'uso di valori condizionali. Questa sezione fornisce esempi su come iniziare a usare i calcoli personalizzati.
Creare calcoli personalizzati per una tabella pivot
CALCOLA e CALCOLABILE sono funzioni potenti e flessibili utili per la definizione di campi calcolati. Queste funzioni consentono di modificare il contesto in cui verrà eseguito il calcolo. È inoltre possibile personalizzare il tipo di aggregazione o di operazione matematica da eseguire. Per alcuni esempi, vedere gli argomenti seguenti.
Applicare un filtro a una formula
Nella maggior parte dei casi in cui una funzione DAX accetta una tabella come argomento, è in genere possibile passare una tabella filtrata, usando la funzione FILTRO invece del nome della tabella oppure specificando un'espressione di filtro come uno degli argomenti della funzione. Gli argomenti seguenti forniscono esempi su come creare filtri e su come i filtri influiscono sui risultati delle formule. Per altre informazioni, vedere Filtrare i dati nelle formule DAX.
La funzione FILTRO consente di specificare i criteri di filtro utilizzando un'espressione, mentre le altre funzioni sono progettate specificamente per filtrare i valori vuoti.
Rimuovere i filtri in modo selettivo per creare un rapporto dinamico
La creazione di filtri dinamici nelle formule consente di rispondere facilmente a domande quali:
- Qual è stato il contributo delle vendite del prodotto corrente alle vendite totali dell'anno?
- Quanto ha contribuito questa divisione ai profitti totali per tutti gli anni operativi, rispetto ad altre divisioni?
Le formule usate in una tabella pivot possono essere interessate dal contesto della tabella pivot, ma è possibile modificare il contesto in modo selettivo aggiungendo o rimuovendo filtri. Nell'esempio nell'argomento ALL viene illustrato come eseguire questa operazione. Per trovare il rapporto tra le vendite di un rivenditore specifico e le vendite di tutti i rivenditori, creare una misura che calcola il valore del contesto corrente diviso per il valore del contesto TUTTI.
L'argomento ALLEXCEPT fornisce un esempio di come cancellare selettivamente i filtri di una formula. Entrambi gli esempi illustrano come i risultati cambiano a seconda della struttura della tabella pivot.
Per altri esempi di calcolo di rapporti e percentuali, vedere gli argomenti seguenti:
Uso di un valore da un ciclo esterno
Oltre a usare i valori del contesto corrente nei calcoli, DAX può usare un valore di un ciclo precedente per creare un set di calcoli correlati. Nell'argomento seguente viene fornita una procedura dettagliata per compilare una formula che fa riferimento a un valore di un ciclo esterno. La funzione EARLIER supporta fino a due livelli di cicli annidati.
Per altre informazioni sul contesto di riga e sulle tabelle correlate, nonché per usare questo concetto nelle formule, vedere Contesto nelle formule DAX.
Scenari: Lavorare con testo e date
In questa sezione sono disponibili collegamenti ad argomenti di riferimento DAX che contengono esempi di scenari comuni in cui è possibile utilizzare il testo, estrarre e comporre valori di data e ora o creare valori in base a una condizione.
Creare una colonna chiave per concatenazione
Power Pivot non consente chiavi composte; Se nell'origine dati sono presenti chiavi composte, potrebbe quindi essere necessario combinarle in un'unica colonna chiave. Nell'argomento seguente viene fornito un esempio di come creare una colonna calcolata basata su una chiave composta.
Compose una data basandosi su parti di data estratte da una data di testo
Power Pivot usa un tipo di dati Data/ora di SQL Server per lavorare con le date; pertanto, se i dati esterni contengono date formattate in modo diverso, ad esempio se le date sono scritte in un formato di data internazionale non riconosciuto dal motore dati Power Pivot o se i dati usano chiavi surrogate intere, potrebbe essere necessario usare una formula DAX per estrarre le parti di date e quindi comporre le parti in una data valida. Rappresentazione temporale.
Se, ad esempio, si ha una colonna di date rappresentate come numeri interi e quindi importate come stringa di testo, è possibile convertire la stringa in un valore di data/ora usando la formula seguente:
=DATA(DESTRA([Valore1],4),SINISTRA([Valore1],2),STRINGA.ESTRAI([Valore1];2))
| Val1 | Risultato |
|---|---|
| 01032009 | 1/3/2009 |
| 12132008 | 12/13/2008 |
| 06252007 | 6/25/2007 |
Gli argomenti seguenti forniscono altre informazioni sulle funzioni usate per estrarre e comporre date.
Definire un formato di data o numero personalizzato
Se i dati contengono date o numeri non rappresentati in uno dei formati di testo standard di Windows, è possibile definire un formato personalizzato per garantire che i valori vengano gestiti correttamente. Questi formati vengono usati quando si convertono i valori in stringhe o da stringhe. In questi argomenti viene fornito anche un elenco dettagliato dei formati predefiniti disponibili per l'utilizzo di date e numeri.
- Formati numerici predefiniti per la funzione FORMAT
- Formati numerici personalizzati per la funzione FORMAT
- Formati di data e ora predefiniti per la funzione FORMAT
- Formati di data e ora personalizzati per la funzione FORMAT
Modificare i tipi di dati usando una formula
In Power Pivot il tipo di dati dell'output è determinato dalle colonne di origine e non è possibile specificare in modo esplicito il tipo di dati del risultato, perché il tipo di dati ottimale è determinato da Power Pivot. È tuttavia possibile usare le conversioni implicite dei tipi di dati eseguite da Power Pivot per modificare il tipo di dati di output.
- Per convertire una data o una stringa numerica in un numero, moltiplicare per 1,0. La formula seguente, ad esempio, calcola la data corrente meno 3 giorni e quindi restituisce il valore intero corrispondente.
=(OGGI()-3)*1.0 - Per convertire un valore di data, numero o valuta in una stringa, concatenare il valore con una stringa vuota. La formula seguente, ad esempio, restituisce la data odierna come stringa.
=""& OGGI()
Per garantire che venga restituito un determinato tipo di dati, è possibile usare anche le funzioni seguenti:
Convertire i numeri reali in numeri interi
- ARROTONDA
- Funzione ARROTONDA.SOFFITTO
-
Funzione FLOOR
Convertire numeri reali, interi o date in stringhe - FISSO
-
Funzione FORMAT
Convertire stringhe in numeri reali o date - VALORE
- DATA.VALORE
- ORARIO.VALORE
Scenario: valori condizionali e test per gli errori
Come Excel, DAX dispone di funzioni che consentono di testare i valori nei dati e restituire un valore diverso in base a una condizione. Ad esempio, è possibile creare una colonna calcolata che etichetta i rivenditori come Preferito o Valore in base all'importo delle vendite annuali. Le funzioni che verificano i valori sono utili anche per controllare l'intervallo o il tipo di valori, per evitare che errori di dati imprevisti interrompano i calcoli.
Creare un valore in base a una condizione
È possibile usare le condizioni SE annidate per testare i valori e generare nuovi valori in modo condizionale. Gli argomenti seguenti contengono alcuni semplici esempi di elaborazione condizionale e valori condizionali:
Verificare la presenza di errori all'interno di una formula
A differenza di Excel, non possono essere presenti valori validi in una riga di una colonna calcolata e valori non validi in un'altra riga. In altre parole, se è presente un errore in una qualsiasi parte di una colonna di Power Pivot, l'intera colonna viene contrassegnata con un errore, quindi è necessario correggere sempre gli errori delle formule che restituiscono valori non validi.
Se ad esempio si crea una formula che esegue la divisione per zero, è possibile che venga restituito il risultato infinito o un errore. Alcune formule avranno esito negativo anche se la funzione rileva un valore vuoto quando prevede un valore numerico. Durante lo sviluppo del modello di dati, è consigliabile lasciare che gli errori vengano visualizzati in modo da poter fare clic sul messaggio e risolvere il problema. Tuttavia, quando si pubblicano cartelle di lavoro, è necessario incorporare la gestione degli errori per evitare che valori imprevisti causino errori nei calcoli.
Per evitare che vengano restituiti errori in una colonna calcolata, utilizzare una combinazione di funzioni logiche e informative per verificare la presenza di errori e restituire sempre valori validi. Gli argomenti seguenti forniscono alcuni semplici esempi di come eseguire questa operazione in DAX:
Scenari: Uso della funzionalità di Business Intelligence per le gerarchie temporali
Le funzioni di Business Intelligence per le gerarchie temporali di DAX includono funzioni che consentono di recuperare date o intervalli di date dai dati. È quindi possibile usare tali date o intervalli di date per calcolare valori in periodi simili. Le funzioni di intelligence basata sulle gerarchie temporali includono anche funzioni che funzionano con intervalli di date standard, per consentire di confrontare valori tra mesi, anni o trimestri. È anche possibile creare una formula che confronta i valori per la prima e l'ultima data di un periodo specificato.
Per un elenco di tutte le funzioni di intelligence per le gerarchie temporali, vedere Funzioni di Business Intelligence per le gerarchie temporali (DAX). Per suggerimenti su come usare date e ore in modo efficace in un'analisi di Power Pivot, vedere Date in Power Pivot.
Calcola le vendite cumulative
Gli argomenti seguenti contengono esempi di come calcolare i saldi di chiusura e di apertura. Gli esempi consentono di creare bilanci in esecuzione in intervalli diversi, ad esempio giorni, mesi, trimestri o anni.
- Funzione CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER,CLOSINGBALANCEYEAR
- Funzione OPENINGBALANCEMONTH, Funzione OPENINGBALANCEQUARTER, Funzione OPENINGBALANCEYEAR, OPENINGBALANCEYEAR
Confrontare i valori nel tempo
Gli argomenti seguenti contengono esempi su come confrontare le somme in periodi di tempo diversi. I periodi di tempo predefiniti supportati da DAX sono mesi, trimestri e anni.
- MESE PRECEDENTE, TRIMESTREPRECEDENTE, ANNOPRECEDENTE
- TOTALE.MTD, TOTALE.QTD, TOTALE.YTD
- Funzione PARALLELPERIOD
Calcolare un valore in un intervallo di date personalizzato
Vedi gli argomenti seguenti per esempi su come recuperare intervalli di date personalizzati, ad esempio i primi 15 giorni dopo l'inizio di una promozione di vendita.
Se si usano le funzioni di Business Intelligence per recuperare un set di date personalizzato, è possibile usare tale set di date come input per una funzione che esegue calcoli per creare aggregazioni personalizzate tra periodi di tempo. Per un esempio di come eseguire questa operazione, vedere l'argomento seguente:
-
Nota
Se non è necessario specificare un intervallo di date personalizzato, ma si sta usando unità contabili standard come mesi, trimestri o anni, è consigliabile eseguire i calcoli usando le funzioni di intelligence per le gerarchie temporali progettate a questo scopo, come TOTALQTD, TOTALMTD, TOTALQTD e così via.
Scenari: classificazione e confronto di valori
Per visualizzare solo i primi n numeri di elementi in una colonna o in una tabella pivot, sono disponibili diverse opzioni:
- È possibile usare le funzionalità di Excel per creare un filtro superiore. È anche possibile selezionare un certo numero di valori superiori o inferiori in una tabella pivot. La prima parte di questa sezione descrive come filtrare i primi 10 elementi in una tabella pivot. Per altre informazioni, vedere la documentazione di Excel.
- È possibile creare una formula che classifica dinamicamente i valori, quindi filtrare in base ai valori di classificazione oppure usare il valore di classificazione come filtro dei dati. La seconda parte di questa sezione descrive come creare questa formula e quindi usare tale classificazione in un filtro dei dati.
Ogni metodo presenta vantaggi e svantaggi.
- Il filtro In alto di Excel è facile da usare, ma è destinato esclusivamente a scopi di visualizzazione. Se i dati alla base della tabella pivot vengono modificati, è necessario aggiornare manualmente la tabella pivot per visualizzare le modifiche. Se è necessario usare le classifiche in modo dinamico, è possibile usare DAX per creare una formula che confronta i valori con altri valori all'interno di una colonna.
- La formula DAX è più potente; inoltre, aggiungendo il valore di classificazione a un filtro dei dati, è sufficiente fare clic su di esso per modificare il numero di primi valori visualizzati. Tuttavia, i calcoli sono costosi dal punto di vista computazionale e questo metodo potrebbe non essere adatto per le tabelle con molte righe.
Visualizzare solo i primi dieci elementi di una tabella pivot
Per visualizzare i valori più alti o più bassi di una tabella pivot
|
|---|
Ordinare gli elementi in modo dinamico con una formula
L'argomento seguente contiene un esempio di come usare DAX per creare una classificazione archiviata in una colonna calcolata. Poiché le formule DAX vengono calcolate dinamicamente, è sempre possibile essere certi che la classificazione sia corretta anche se i dati sottostanti sono stati modificati. Inoltre, poiché la formula viene usata in una colonna calcolata, è possibile usare la classificazione in un filtro dei dati e quindi selezionare i primi 5, i primi 10 o anche i primi 100 valori.