Ottimizzazione DAX: dove trovare la trappola DAX nascosta

Voglio concentrarmi oggi su qualcosa che chiamo la trappola DAX nascosta. Se incontri questa situazione, ti farà sentire come se stessi perdendo la testa perché il tuo DAX sembrerà giusto, ma non funzionerà. Ti illustrerò quando ciò si verifica e cosa puoi fare al riguardo e, nel processo, parlerò anche di alcune best practice generali per l'ottimizzazione DAX. Puoi guardare il video completo di questo tutorial in fondo a questo blog.

Diamo prima un'occhiata a ciò con cui stiamo lavorando qui. Abbiamo circa 10 anni di dati dall'Internet Movie Database. Le tabelle dei fatti sono piuttosto semplici e abbiamo dati di valutazione, dati di budget e dati lordi.

Oggi esamineremo gli incassi mondiali.

Ottimizzazione DAX: dove trovare la trappola DAX nascosta

Abbiamo anche la nostra tabella delle date estesa. Questa sarà un'analisi dell'intelligence temporale basata sulla tabella delle date e sulla tabella dei fatti.

Ottimizzazione DAX: dove trovare la trappola DAX nascosta

Sommario

Totale mondiale lordo all'anno

Vogliamo fare qualcosa di veramente comune e semplice. Il nostro Total Worldwide Gross è solo una misura di somma aggregata molto semplice, che vogliamo convertire in percentuale.

Ottimizzazione DAX: dove trovare la trappola DAX nascosta

Per fare ciò, prendiamo il numeratore ( misura Total Worldwide Gross ) e il denominatore ( misura Total Worldwide Gross , ma abbiamo rimosso il contesto dal filtro dell'anno).

Ottimizzazione DAX: dove trovare la trappola DAX nascosta

Ho usato la perché penso sia più intuitiva quando leggi il codice, ma se preferisci la , funziona altrettanto bene. Basta dividere il numeratore per il denominatore per ottenere il risultato.

Se prendiamo la misura risultante e la inseriamo nella nostra tabella, vedrai che fa esattamente quello che ci aspettiamo che faccia. Otteniamo il 100% in fondo e otteniamo gli anni convertiti nelle loro percentuali individuali. Fin qui tutto bene, e non abbiamo ancora riscontrato alcun problema.

Ottimizzazione DAX: dove trovare la trappola DAX nascosta

Totale mondiale lordo per trimestre

Diamo un'occhiata a una situazione simile in cui andiamo per trimestre. Questa misura potrebbe essere utile perché ci sono ipotesi che gli incassi della stagione cinematografica estiva siano diversi dall'inizio dell'anno e verso la fine dell'anno che porta alla stagione degli Oscar.

Ancora una volta, abbiamo la stessa identica misura con la funzione REMOVEFILTERS sui numeri del trimestre anziché sull'anno.

Ottimizzazione DAX: dove trovare la trappola DAX nascosta

E se lasciamo cadere la misura che abbiamo appena fatto nella tabella, fa anche esattamente quello che ci aspettiamo.

Ottimizzazione DAX: dove trovare la trappola DAX nascosta

Totale mondiale lordo per mese e anno

Diamo un'occhiata al terzo caso, che può essere molto comune, in cui vogliamo guardare per mese e anno.

Ottimizzazione DAX: dove trovare la trappola DAX nascosta

E ancora, useremo la stessa misura di prima. Ma questa volta rimuoveremo il filtro su mese e anno.

Ottimizzazione DAX: dove trovare la trappola DAX nascosta

Mettiamolo nel nostro tavolo. All'improvviso non funziona.

Ottimizzazione DAX: dove trovare la trappola DAX nascosta

Possiamo dire cosa non funziona. Sappiamo che la misura Worldwide Gross funziona, quindi significa che il numeratore va bene, ma il denominatore no. In ciascuno dei casi precedenti, la funzione REMOVEFILTERS ha rimosso correttamente il filtro, ma qui chiaramente non è stato così.

Possiamo effettivamente verificarlo modificando ciò che abbiamo restituito qui nel risultato.

Ottimizzazione DAX: dove trovare la trappola DAX nascosta

Invece di Risultato, usiamo Denominatore. Tieni presente che questo sarà formattato in percentuale, quindi sembrerà un po' strano.

Ottimizzazione DAX: dove trovare la trappola DAX nascosta

Quello che dovremmo ottenere per il denominatore è lo stesso numero in ogni riga, ma non lo è.

Ottimizzazione DAX: dove trovare la trappola DAX nascosta

Possiamo dire che non sta rimuovendo il filtro su mese e anno e pensiamo che sia perché il mese e l'anno sono nel testo.

Ottimizzazione DAX: dove trovare la trappola DAX nascosta

Ma anche il precedente per trimestre era espresso nel testo, quindi non è semplicemente perché il suo testo. Deve solo essere risolto. Una volta rilasciato il campo senza ordinarlo, verrà ordinato in ordine alfabetico.

Nella tabella delle date estesa, diamo un'occhiata a quel campo chiamato Month & Year . Se lo guardiamo nella colonna Ordina per , vedremo qualcosa di interessante.

Vedremo che quella colonna è ordinata in base a un numero chiamato MonthnYear. Quando si ordina una colonna per un'altra, quella colonna di ordinamento diventa effettivamente parte del contesto del filtro. Questo è ciò che sta rovinando questo calcolo.

Ottimizzazione DAX: dove trovare la trappola DAX nascosta

Torniamo alla nostra misura e rimuoviamo il contesto del mese e dell'anno che stiamo usando come nostro ordinamento.

Ottimizzazione DAX: dove trovare la trappola DAX nascosta

Ora stiamo ottenendo esattamente ciò che dovremmo, ovvero il mese e l'anno calcolati come percentuale corretta.

Ottimizzazione DAX: dove trovare la trappola DAX nascosta

Quando si rimuove un contesto di filtro, saranno necessari due campi per eseguire questa operazione quando viene ordinato . Potresti chiedere che invece di dover fare due campi qui, perché non possiamo semplicemente rimuovere i filtri dall'intera tabella delle date?

La risposta è che possiamo, e questo funzionerà per i tre esempi di cui abbiamo parlato perché ciascuna di queste colonne fa parte della nostra tabella delle date. La rimozione di tutto il contesto del filtro su quella tabella funzionerà per tutti e tre i casi, ma questa è in realtà una cattiva idea.

Come principio generale di ottimizzazione DAX, è necessario rimuovere tutto il contesto del filtro necessario per ottenere il risultato desiderato.

Nella maggior parte dei casi, non lo presenterai in un formato tabulare. Lo presenterai come una matrice e avrai bisogno di una misura più complessa perché hai due granularità diverse nella stessa colonna. Questa misura sembra complicata, ma in realtà non lo è.

Ottimizzazione DAX: dove trovare la trappola DAX nascosta

Questa è solo un'estensione di ciò che abbiamo già fatto. La prima parte di questo calcolo di ottimizzazione DAX mostra i denominatori per la diversa granularità. Rimuoviamo il contesto del filtro per un mese, per l'anno e per l'intera tabella.

Ottimizzazione DAX: dove trovare la trappola DAX nascosta

Per la seconda parte del calcolo, abbiamo utilizzato SWITCH TRUE. Per questa funzione, devi passare dal più specifico al meno specifico. Il mese è il nostro ambito più ristretto e specifico, quindi è qui che iniziamo. Dovremo rimuovere il contesto utilizzando quei due campi che abbiamo identificato.

Ottimizzazione DAX: dove trovare la trappola DAX nascosta

Per l'ambito dell'anno, dobbiamo rimuovere il contesto sull'anno e rimuovere il contesto sull'intera tabella.

Ottimizzazione DAX: dove trovare la trappola DAX nascosta

Diamo un'occhiata a cosa succede se prendiamo e rimuoviamo il contesto dall'intera tabella delle date . Useremo una misura diversa che rimuove il contesto dall'intera tabella delle date per tutti e tre i casi.

Ottimizzazione DAX: dove trovare la trappola DAX nascosta

Vedremo che la misura sta rimuovendo eccessivamente il contesto. Invece di calcolare il contributo di ogni mese a quell'anno, calcola il contributo di quel mese all'intero set di dati. Questo non è ciò che vogliamo che accada perché rimuovere il contesto dall'intero tavolo è in realtà solo uno strumento contundente quando è necessario un bisturi.

Conclusione

Ci sono molti casi in cui hai una matrice e devi controllare attentamente quale contesto rimuovi. Rimuovere semplicemente il contesto dall'intera tabella causerà questo tipo di problemi.

Spero che quando si presenterà questa situazione (cosa che invariabilmente accadrà, a un certo punto), la riconoscerai come la trappola nascosta di cui abbiamo discusso in questo post sull'ottimizzazione DAX e sarai in grado di evitarla senza la stessa frustrazione che mi ha causato quando l'ho visto per la prima volta e non riuscivo a capire perché il mio DAX non funzionava correttamente.

Se ti è piaciuto l'argomento relativo all'ottimizzazione DAX trattato in questo particolare tutorial, iscriviti al canale TV LuckyTemplates . Abbiamo un'enorme quantità di contenuti che escono continuamente da me e da una serie di creatori di contenuti, tutti dedicati a migliorare il modo in cui utilizzi LuckyTemplates e Power Platform.

Leave a Comment

Power Automate si applica a ogni azione nei flussi di lavoro

Power Automate si applica a ogni azione nei flussi di lavoro

Scopri l

Tecniche di modellazione dei dati per organizzare le misure DAX

Tecniche di modellazione dei dati per organizzare le misure DAX

Tecniche di modellazione dei dati per organizzare meglio le misure DAX per un flusso di lavoro più efficiente.

Filtro Power Apps: cosè e come si usa?

Filtro Power Apps: cosè e come si usa?

Scopri come utilizzare la funzione di filtro in Power Apps e come incorporarla nelle formule esistenti all

Come commentare più righe in Python: una guida semplice e veloce

Come commentare più righe in Python: una guida semplice e veloce

Come commentare più righe in Python: una guida semplice e veloce

Connettori Power Automate: numero, testo e data e ora

Connettori Power Automate: numero, testo e data e ora

Acquisisci familiarità con i connettori Power Automate per la manipolazione di numeri, testo e date/ore.

Budget Vs Actual Vs Last Year - Suggerimenti per la rendicontazione finanziaria

Budget Vs Actual Vs Last Year - Suggerimenti per la rendicontazione finanziaria

Ora, è molto facile studiare il budget rispetto all

Come salvare e caricare un file RDS in R

Come salvare e caricare un file RDS in R

Imparerai come salvare e caricare oggetti da un file .rds in R. Questo articolo tratta anche come importare oggetti da R a LuckyTemplates.

Che cosè Power Query e M Language: una panoramica dettagliata

Che cosè Power Query e M Language: una panoramica dettagliata

Scopri tutto su Power Query e il linguaggio M per la trasformazione e la preparazione dei dati nel desktop di LuckyTemplates.

Cosè il sé in Python: esempi del mondo reale

Cosè il sé in Python: esempi del mondo reale

Cos'è il sé in Python: esempi del mondo reale

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.