Funzioni di iterazione nel linguaggio DAX: un esempio dettagliato

Funzioni di iterazione nel linguaggio DAX: un esempio dettagliato

Per questo post di blog, desidero approfondire le funzioni di iterazione all'interno del linguaggio DAX in LuckyTemplates. Il motivo per cui voglio dedicare del tempo a mostrare cosa si può fare all'interno delle funzioni di iterazione è perché è un concetto così importante che è necessario imparare molto bene. Puoi guardare il video completo di questo tutorial in fondo a questo blog.

Potresti aver appena completato alcune semplici SUM o potenzialmente utilizzato la funzione AVERAGE, ma è anche importante capire come utilizzare le funzioni di iterazione che hanno una X alla fine , come: SUMX, AVERAGEX o COUNTX.

Il motivo è perché puoi diventare molto più avanzato all'interno di una funzione di iterazione rispetto a una funzione di aggregazione.

Sommario

Che cos'è una funzione iterante?

Se non hai ancora familiarità con cosa sia una funzione di iterazione, è una funzione nel linguaggio delle formule DAX che in genere ha una X alla fine. Hai anche funzioni di tabella che iterano attraverso una tabella come FILTER o VALUES, ma in questo caso ci occuperemo esclusivamente di SUMX.

Se guardi la nostra formula per le vendite totali, puoi vedere che questa è una funzione iterativa a causa del SUMX. Iterare significa scorrere ogni singola riga ed eseguire un calcolo. In questo caso, per ogni singola riga della tabella Sales, moltiplichiamo la quantità per il prezzo corrente. Torniamo anche alla tabella Product utilizzando la funzione RELATED per ottenere il prezzo corrente.

Funzioni di iterazione nel linguaggio DAX: un esempio dettagliato

Voglio mostrarti come puoi scrivere funzioni di iterazione davvero complesse che estraggono grandi informazioni che potresti voler ottenere nei tuoi dati. Per questo tutorial, voglio calcolare quante vendite effettuiamo al di sopra di un certo prezzo. In questo caso, selezioneremo $ 2.000.

Voglio anche sapere quali sono le nostre vendite mensili per prodotti superiori a $ 2000, ma dove qualcuno acquista più di un solo prodotto. Vogliamo anche vedere come si confronta con le nostre vendite totali. Questo è il tipo di complessità che si può ottenere scrivendo una sola formula e utilizzando una funzione di iterazione.

Prezzo di vendita superiore a $ 2000

Creiamo una misura e chiamiamola Sale Price > $2000 & Quantity > 1 . In genere, dovresti scrivere alcune colonne diverse o alcune misure diverse per vedere la risposta qui, ma ti mostrerò come puoi effettivamente farlo con una sola. Inizierò con SUMX e qui dice che dobbiamo entrare in un tavolo, giusto?

Funzioni di iterazione nel linguaggio DAX: un esempio dettagliato

Quindi affronteremo questa sfida Quantità > 1 creando una tabella che non è l'intera tabella delle vendite, ma una tabella che ha già filtrato tutto ciò che è stato visto solo una volta. Useremo FILTER qui poiché è una funzione di tabella, quindi puoi inserire qualsiasi tipo di tabella all'interno. Quindi andremo con Sales e itereremo attraverso ogni singola riga nella tabella Sales all'interno di questa funzione FILTER e filtreremo ogni riga con una quantità maggiore di uno.

Funzioni di iterazione nel linguaggio DAX: un esempio dettagliato

Per ogni vendita superiore a 1, voglio anche creare una logica aggiuntiva. Scriverò un modello di espressione e userò SWITCH qui. Diremo che se la vendita ha un prezzo corrente maggiore o uguale a $ 2000, allora voglio calcolare le vendite totali. Se non lo è, allora non voglio calcolarlo affatto. Infine, inserirò 0 come risultato alternativo.

Funzioni di iterazione nel linguaggio DAX: un esempio dettagliato

Questo è il modo in cui scrivi alcune formule di iterazione piuttosto complesse nel linguaggio DAX. La parte fondamentale è solo capire che tipo di tabelle puoi inserire e sapere cosa sta facendo l'iterazione effettiva .

In questo caso, per ogni singola riga in questa tabella dei filtri, sto valutando qual è il prezzo attuale maggiore di $ 2000. Se lo è, contiamo le vendite di quella riga e se non lo è, allora è solo 0.

Dopo aver trascinato questa misura nella tabella, vedrai che i risultati sono simili a quelli che abbiamo ottenuto nel primo grafico; l'unica differenza è che questo è su base giornaliera.

Funzioni di iterazione nel linguaggio DAX: un esempio dettagliato

Prezzo di vendita superiore a $500

Possiamo creare ulteriori informazioni qui riutilizzando lo stesso modello. Se volessimo vedere cosa c'era sopra i 500$, tutto ciò che dobbiamo fare è apportare alcune piccole modifiche qui, premere Invio e trascinare anche questo nella tabella.

Funzioni di iterazione nel linguaggio DAX: un esempio dettagliato

Ovviamente, possiamo vedere una grande differenza perché ci sono più prodotti che stiamo contando. Questo perché non ci stiamo sbarazzando di tanti prodotti a prezzo più alto o a prezzo più basso come lo eravamo in precedenza con i $ 2000.

Funzioni di iterazione nel linguaggio DAX: un esempio dettagliato

Visualizzare i dati 

Possiamo anche trasformarlo in una visualizzazione , tuttavia, come puoi vedere, il grafico sembra un po' affollato quindi probabilmente è meglio rimanere nella tabella, oppure possiamo rendere l'intervallo di tempo più condensato come il grafico a sinistra.

Funzioni di iterazione nel linguaggio DAX: un esempio dettagliato

Si spera che tu possa valutare e capire fino a che punto puoi spingerti con queste funzioni di iterazione all'interno del linguaggio DAX. Puoi iniziare a immergerti davvero in qualsiasi aspetto dei tuoi dati o estrarre approfondimenti molto specifici. Il modo per farlo è usare questo contesto di riga, che ti consente di entrare effettivamente all'interno di queste funzioni di iterazione. È possibile esaminare una singola riga, inserirla all'interno o all'esterno del calcolo e utilizzare le funzioni di iterazione come SUMX, AVERAGEX e COUNTX.

Le funzioni di iterazione offrono molta più flessibilità in termini di calcoli che è possibile eseguire a livello di riga rispetto alle aggregazioni che consentono solo di aggregare un'intera colonna. Ora all'interno delle funzioni di iterazione, devi prima inserire un riferimento a una tabella e poi un'espressione, ma certamente espandere la tua mente in termini di ciò che uno di questi può effettivamente essere.

All'interno delle funzioni di iterazione puoi effettivamente inserire qualsiasi tabella o qualsiasi derivato di una tabella ... anche qualsiasi tabella virtuale o riferimento alla tabella. Ciò consente una flessibilità molto maggiore di quella che si avrebbe normalmente se si utilizzasse semplicemente un'intera tabella come la tabella delle transazioni per eseguire un po 'di logica.

Anche l'espressione (o la misura) che inserisci può essere molto avanzata. Potresti usare la logica IF avanzata o la logica SWITCH, o praticamente qualsiasi cosa tu possa fare a livello di riga all'interno di una colonna calcolata. Puoi effettivamente inserirlo in quell'espressione parte di una funzione di iterazione.

Conclusione

Il punto chiave di questo post è che le funzioni di iterazione sono incredibilmente importanti da comprendere e apprendere bene all'interno di LuckyTemplates.

Se lo impari bene, le opportunità di eseguire calcoli interni nella memoria tramite misure diventano davvero, davvero potenti.

Consulta la se hai appena iniziato con il linguaggio DAX e LuckyTemplates. Molto da imparare all'interno di questo corso gratuito. Puoi trovarlo su .


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.