Ottimizzazione DAX: dove trovare la trappola DAX nascosta

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.


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

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 blog tratterà anche come importare oggetti da R a LuckyTemplates.

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.

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.

Introduzione al filtraggio del contesto in LuckyTemplates

Introduzione al filtraggio del contesto in LuckyTemplates

In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.

Idee di materializzazione per cache di dati in DAX Studio

Idee di materializzazione per cache di dati in DAX Studio

Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.

Reporting aziendale tramite LuckyTemplates

Reporting aziendale tramite LuckyTemplates

Se finora utilizzi ancora Excel, questo è il momento migliore per iniziare a utilizzare LuckyTemplates per le tue esigenze di reportistica aziendale.

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cos'è il gateway LuckyTemplates? Tutto quello che devi sapere