Utilizzo di funzioni di iterazione in DAX

Utilizzo di funzioni di iterazione in DAX

Ho notato una certa confusione con l'iterazione delle funzioni in DAX ogni volta che lavoro con i membri di LuckyTemplates nel forum. Quindi faremo una revisione di cosa si può ottenere usando queste funzioni e perché dovresti usarle. Puoi guardare il video completo di questo tutorial in fondo a questo blog.

Man mano che approfondisci le formule DAX , utilizzerai queste funzioni di iterazione molto più di quanto pensi. Sono molto più versatili delle semplici funzioni di aggregazione come SUM o AVERAGE .

Ho alcuni esempi qui e voglio lavorare sulla logica in ciascuno di questi esempi in modo che tu possa capire molto bene cosa succede realmente quando la logica viene eseguita tramite queste formule.

La cosa fondamentale dell'iterazione delle funzioni è che iterano attraverso qualcosa.

Sommario

Semplice iterazione con SUMX

Utilizzo di funzioni di iterazione in DAX

In questo caso, voglio riassumere qualcosa ma voglio scorrere ogni singola riga in questa tabella delle vendite.

Utilizzo di funzioni di iterazione in DAX

E poi ad ogni singola riga, voglio eseguire questa logica specifica qui.

Utilizzo di funzioni di iterazione in DAX

Passiamo rapidamente alla nostra tabella delle vendite molto semplice, in cui voglio eseguire un po' di logica su ogni singola riga. E poi voglio moltiplicare Quantità per Prezzo.

Utilizzo di funzioni di iterazione in DAX

Il prezzo non esiste in questa tabella. E per questo particolare modello, è effettivamente nella tabella dei prodotti.

Utilizzo di funzioni di iterazione in DAX

La prossima cosa che devo fare è tornare alla mia tabella Product e posso farlo con RELATED . Quando calcoliamo la quantità moltiplicata per il prezzo rilevante, lo facciamo per ogni singola riga. Questo è esattamente ciò che sta accadendo all'interno di questa formula.

Questi sono i concetti chiave da ricordare quando iniziamo a fare cose più avanzate.

Un approccio alternativo per ottenere vendite utilizzando SUMX

Utilizzo di funzioni di iterazione in DAX

In questo esempio, ho SUMX che scorre di nuovo la tabella Sales. Quindi eseguiamo quella logica in ogni singola riga e calcoliamo la quantità per il prezzo in ogni singola riga e poi la aggreghiamo una volta che tutte le iterazioni sono terminate.

Utilizzo di funzioni di iterazione in DAX

Vedrai qui che questo risultato è esattamente lo stesso dei risultati nel primo esempio (SUMX Tutorial 2) o Total Sales.

Puoi inserire un'intera varietà di cose diverse qui: può essere una misura e puoi espanderti con una funzione di iterazione. Non è necessario fare riferimento a colonne specifiche per ottenere effettivamente i calcoli correttamente.

Utilizzo di funzioni di iterazione in DAX

Come puoi vedere qui, tutto ciò che ho fatto è inserire qui una misura (vendite totali) e ottengo esattamente lo stesso risultato.

SUMX e funzioni logiche

Utilizzo di funzioni di iterazione in DAX

Sto usando SUMX qui, ma è rilevante anche per AVERAGEX , MINX e MAXX . Sono tutte cose molto simili.

Un'altra cosa fondamentale da ricordare con queste funzioni di iterazione è che eseguono la logica su ogni singola riga e salvano il risultato in memoria.

Una volta che tutti questi valori sono stati salvati in memoria, viene eseguito il calcolo generale, come una SOMMA o una MEDIA .

Utilizzo di funzioni di iterazione in DAX

Tornando al nostro esempio, qui puoi vedere che l'importo in questa colonna è leggermente inferiore rispetto alle colonne precedenti.

Utilizzo di funzioni di iterazione in DAX

Con la funzione di iterazione SUMX , desidero scorrere ogni singola riga nella tabella Sales. E in ogni singola riga, voglio calcolare se quella particolare vendita è maggiore di $ 2.000. Se lo è, voglio calcolare le vendite totali per quella riga. Ma se il totale della vendita era inferiore a $ 2000, allora voglio restituire zero. Quindi voglio solo calcolare le vendite di maggior valore.

Alcune persone suggeriranno che potrei semplicemente inserire la logica all'interno di una colonna calcolata. Ma non vogliamo farlo perché c'è un modo molto migliore per eseguire questa logica all'interno di DAX piuttosto che inserirla fisicamente all'interno di una colonna.

Iterare attraverso le tabelle

È qui che le funzioni di iterazione sono davvero sorprendenti. Non solo puoi scorrere una tabella fisica come abbiamo fatto prima, ma puoi anche scorrere qualche altra tabella virtuale che inserisci come parametro.

Utilizzo di funzioni di iterazione in DAX

Penseremo che ogni singolo risultato qui abbia un contesto specifico. In questo caso particolare, abbiamo il contesto del cliente.

Utilizzo di funzioni di iterazione in DAX

In questo contesto, voglio iterare attraverso ogni singola posizione e voglio vedere se un particolare cliente ha raggiunto vendite superiori a $ 5.000.

Se lo fa, voglio calcolare le vendite totali. Ma se non lo fa, voglio che restituisca zero.

Utilizzo di funzioni di iterazione in DAX

Quindi, in questo caso particolare, sto calcolando le località di alto valore in cui questo cliente sta acquistando e le vendite totali che stanno realizzando in quelle località.

Utilizzo di funzioni di iterazione in DAX

Ciò che VALUES sta facendo qui è creare una tabella virtuale. Quindi SUMX non sta nemmeno lavorando su qualcosa di fisico qui. In realtà sta lavorando su qualcosa che è totalmente virtuale.

Semplice iterazione con MINX

Utilizzo di funzioni di iterazione in DAX

Questo è simile agli esempi precedenti ma invece di SUMX , eseguiremo un altro tipo di aggregazione dopo aver ripetuto ogni singola riga.

Utilizzo di funzioni di iterazione in DAX

In questo caso particolare, stiamo esaminando ogni singola sede per ciascun cliente e calcolando le vendite totali per ciascuna di tali sedi.

Utilizzo di funzioni di iterazione in DAX

Quindi vogliamo restituire l'importo minimo del luogo in cui hanno acquistato.

Semplice iterazione con MAXX

Utilizzo di funzioni di iterazione in DAX

Sto anche facendo una cosa simile qui solo per mostrarti la versatilità delle funzioni di iterazione. Sto esaminando ogni singola sede osservando le loro vendite ma poi restituendo il massimo di quelle vendite di località, motivo per cui stiamo vedendo numeri più alti qui.

Conclusione

La cosa fondamentale che volevo toccare in questo articolo è la gamma di opzioni che hai all'interno di una funzione di iterazione rispetto a una semplice somma o media.

Una volta che inizi a scavare in calcoli più complessi, vedrai quanto siano essenziali queste particolari funzioni per restituire valori a livello di contesto.

C'è così tanta versatilità e così tanti modi in cui puoi eseguire questi calcoli usando una semplice formula se sai come manipolare i parametri.

Se ti è piaciuto conoscere queste funzioni di iterazione , puoi consultare questi collegamenti per ottenere maggiori informazioni su questo argomento:

Concetti chiave per l'iterazione delle funzioni in LuckyTemplates

Iterazione della logica tramite tabelle virtuali: concetti DAX avanzati in LuckyTemplates

Divertiti a lavorare su questo.


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