Tabella virtuale di LuckyTemplates | 5 suggerimenti e trucchi per il debug

Tabella virtuale di LuckyTemplates | 5 suggerimenti e trucchi per il debug

La tabella virtuale di LuckyTemplates è il mio argomento DAX preferito. Sono la chiave per sbloccare tutta la potenza di DAX. Le tabelle virtuali sono l'unico tipo di tabelle all'interno di LuckyTemplates che sono completamente dinamiche e ci sono problemi che possono essere risolti solo applicando tecniche di tabelle virtuali all'interno delle misure. Puoi guardare il video completo di questo tutorial in fondo a questo blog.

In questo tutorial, condividerò i miei 5 migliori suggerimenti e trucchi che ho accumulato nel corso degli anni che mi hanno davvero aiutato a capire ed eseguire il debug di ciò che accade all'interno delle tabelle virtuali di Power Bi.

L'esempio che esaminerò oggi è tratto dal e proviene da un membro di nome Dave C, che lavora nel campo della sicurezza industriale. Dave aveva una serie di punteggi di sicurezza e voleva normalizzarli in modo che il punteggio massimo fosse 10, e poi trovare dinamicamente l'ennesimo in quella lista.

Tabella virtuale di LuckyTemplates |  5 suggerimenti e trucchi per il debug

Inizialmente, abbiamo pensato di farlo attraverso una semplice misura , ma in seguito ci siamo resi conto che molti dei suoi valori normalizzati hanno legami. Ad esempio, se vuoi il settimo elemento nell'elenco, non ci sarà un numero sette in un RANKX. Non esiste un modo semplice per estrarlo da una condizione di filtro. Quindi abbiamo deciso una misura basata su in modo che contasse sempre l'ennesimo numero.

Questo è simile a quando estrai la settima carta da un mazzo, conti sette carte e poi giri quella pila di sette, e la carta in fondo è quella che vuoi. Faremo l'equivalente di quello in una misura TOPN.

Sommario

Suggerimento n. 1: utilizzare uno strumento esterno per visualizzare la tabella virtuale di LuckyTemplates

È possibile usare DAX Studio o l'editor tabulare. In questo esempio, utilizzo Tabular Editor 3 (TE3). È tecnicamente possibile farlo utilizzando la scheda Modellazione - Nuova tabella, ma creerà tabelle fisiche all'interno del modello di dati. Dovrai passare manualmente da quello all'editor ed è solo un modo lento e difficile per farlo.

Quando vedi il modo dinamico in cui può essere fatto attraverso uno strumento esterno, vedrai il vantaggio.

Quindi, all'interno del TE3, creiamo una nuova query DAX. Possiamo prendere la nostra misura iniziale e copiarla nella nostra query DAX.

Tabella virtuale di LuckyTemplates |  5 suggerimenti e trucchi per il debug

Se ricordi, le query DAX iniziano sempre con EVALUATE . Inizialmente verrà visualizzato un errore perché le query DAX restituiscono tables . Questa era una misura con le ultime due variabili che sono scalari. Quello che possiamo fare qui è cambiare il valore restituito , che è il mio prossimo consiglio.

Tabella virtuale di LuckyTemplates |  5 suggerimenti e trucchi per il debug

Suggerimento n. 2: eseguire il debug della tabella virtuale di LuckyTemplates in parti utilizzando le variabili

Puoi eseguire il debug delle tabelle virtuali più o meno allo stesso modo delle misure, pezzo per pezzo, modificando il valore restituito. Iniziamo con la prima tabella virtuale, la vEvalTable . Sostituiamo semplicemente il valore RETURN (Finale) con la nostra prima variabile (VAR). E puoi vedere che l'errore scompare perché la query DAX sta ora ottenendo una tabella.

Tabella virtuale di LuckyTemplates |  5 suggerimenti e trucchi per il debug

Nella vEvalTable, prendiamo i dati originali, che sono i punteggi di sicurezza, e li stiamo normalizzando e aggiungendo la colonna Valore normalizzato alla tabella virtuale. Abbiamo l'indice, il valore della regione e il valore normalizzato. Possiamo ordinare questi valori verso l'alto o verso il basso e filtrare anche i valori.

Tabella virtuale di LuckyTemplates |  5 suggerimenti e trucchi per il debug

Questo ci sta dando esattamente quello che ci aspettavamo. Restituisce 50 righe, ovvero il set di dati completo. Sta andando tutto bene, quindi scendiamo ed esploriamo la tabella successiva, che è vTableTopN . In questa tabella, prendiamo TOPN utilizzando l'ennesimo valore del dispositivo di scorrimento dell'elemento. In questo esempio, abbiamo quel settimo valore della tabella virtuale sopra (vEvalTable) e stiamo prendendo quel TOPN in base al valore normalizzato in ordine decrescente.

Quindi, quando cambiamo la nostra funzione RETURN in quella, cade e non otteniamo nulla. Diamo un'occhiata al motivo perché questo è un concetto davvero importante per il debug e la comprensione delle tabelle virtuali.

Tabella virtuale di LuckyTemplates |  5 suggerimenti e trucchi per il debug

Se guardiamo la formula, abbiamo l'Nth Item Slider Value come il principale sospettato qui. Tornando a LuckyTemplates, possiamo vedere che in pratica si tratta solo di raccogliere il numero sette. Tieni presente che i dispositivi di scorrimento esistono all'interno del contesto di una pagina .

E così, in questo caso, quando stiamo cercando di eseguire il debug di quella tabella fuori contesto, quel valore selezionato non ha contesto attorno ad esso . Non ha nulla in termini di capacità di estrarre quel numero. Stavamo ottenendo un TOPN, ma non sappiamo quale sia la N in TOPN perché quel valore selezionato restituisce uno spazio vuoto.

Come lo gestiamo? Diamo un'occhiata alla misura del valore selezionato. La maggior parte delle volte, prestiamo sempre attenzione al primo parametro in , ma c'è un secondo parametro, che è un'alternativa. Questo ci porta al mio terzo suggerimento.

Suggerimento n. 3: utilizzare il parametro alternativo in SELECTEDVALUE

Quello che è successo qui è che ha tirato il vuoto come supplente. Ma quello che vogliamo fare (a scopo di debug) è che vogliamo inserire un valore reale qui . Quindi, mettiamo il numero 7 e lo salviamo.

Tabella virtuale di LuckyTemplates |  5 suggerimenti e trucchi per il debug

Ora abbiamo alcuni valori. Restituisce sette righe, che è esattamente quello che dovrebbe a causa di quel valore TOPN di sette.

Tabella virtuale di LuckyTemplates |  5 suggerimenti e trucchi per il debug

Continuiamo lungo la linea fino alla tabella virtuale successiva, che è vTableNthItem . Abbiamo quel mazzo di sette carte, e questo tavolo lo sta praticamente girando. Eravamo in ordine decrescente nella tabella precedente e ora siamo in ordine crescente.

Se prendiamo e copiamo questo nella sezione RETURN, otteniamo i risultati. È interessante che non restituisca una riga. Sta restituendo tre righe perché queste tre sono in parità. Questo è esattamente il motivo per cui usiamo TOPN piuttosto che RANKX, in questo caso.

Tabella virtuale di LuckyTemplates |  5 suggerimenti e trucchi per il debug

Ora andiamo a Risultato . Se copiamo il risultato VAR nella sezione RETURN, questo arriva al mio quarto consiglio.

Suggerimento n. 4: usa { } per trasformare gli scalari in tabelle

All'interno della formula, prendiamo il massimo ( ) di quel vTableNthItem e restituiamo il valore normalizzato. Questo potrebbe essere , potrebbe essere , potrebbe essere . È solo un aggregatore che restituisce quel valore in quella tabella. E quindi, se lo copiamo, ci darà un errore perché ora è uno scalare.

Tabella virtuale di LuckyTemplates |  5 suggerimenti e trucchi per il debug

Ma questo è il mio quarto suggerimento, che è nel contesto del debug. Quello che puoi fare è semplicemente aggiungere le parentesi graffe . In questo modo, trasforma quello scalare in una tabella.

Tabella virtuale di LuckyTemplates |  5 suggerimenti e trucchi per il debug

E poi, quello che abbiamo qui è solo un controllo finale degli errori, ovvero se si scopre che la tabella di valutazione è più piccola del numero di righe, restituirà dati insufficienti. Ma in questo caso sappiamo che il nostro set di dati è abbastanza grande. Tuttavia, possiamo semplicemente testarlo digitando Final . Di nuovo, dato che è uno scaler, abbiamo bisogno anche delle parentesi graffe, e qui otteniamo lo stesso valore.

Tabella virtuale di LuckyTemplates |  5 suggerimenti e trucchi per il debug

Abbiamo approfondito ed eseguito il debug di questa tabella virtuale e abbiamo utilizzato il valore alternativo in SELECTEDVALUE per evitare che cada fuori contesto. Ora voglio solo mostrarti un consiglio in più che ho trovato davvero utile.

Suggerimento n. 5: utilizzare CONCATENATEX/UNICHAR per trasformare una tabella in uno scalare

Nel contesto dell'esecuzione del debug, vorrai vedere in LuckyTemplates come appare quella tabella. La regola generale è che una misura può restituire solo uno scalare, non una tabella. Ma c'è un trucco che ti mostrerò che gli consente di restituire quasi un tavolo.

Diamo un'occhiata a questa misura, che è Visualized Virtual Table , e abbiamo qui tutte le tabelle virtuali che avevamo inizialmente. Ad esempio, vogliamo visualizzare, diciamo nella prima pagina del report, il vTableTopN.

Tabella virtuale di LuckyTemplates |  5 suggerimenti e trucchi per il debug

Puoi usare questa funzione . Puoi effettivamente prendere quel nome di tabella virtuale (vTableTopN) e prendere i valori in quella tabella e concatenarli. Puoi creare qualcosa che sostanzialmente assomigli a un tavolo virtuale.

Tabella virtuale di LuckyTemplates |  5 suggerimenti e trucchi per il debug

Se prendiamo questa misura, dobbiamo tornare a LuckyTemplates e inserirla in una misura della carta. In genere, la tabella restituisce un errore, ma tramite CONCATENATEX ha trasformato quella tabella in uno scaler. Puoi vedere che è abbastanza primitivo, ma restituisce esattamente ciò che ci aspettiamo e lo fa in modo dinamico.

Tabella virtuale di LuckyTemplates |  5 suggerimenti e trucchi per il debug

È un modo per inserire una tabella in una misura e mostrarla nel report. È un trucco di debug davvero utile. Fornirà un buon formato in un valore di carta che puoi utilizzare in un rapporto.


Master tabelle virtuali in LuckyTemplates Utilizzo
delle tabelle virtuali DAX all'interno delle funzioni di iterazione in LuckyTemplates - Concetti DAX
Tabelle in LuckyTemplates: tipi e distinzioni

Conclusione

Si spera che questo tutorial fornisca spunti di riflessione in termini di utilizzo di una tabella virtuale di LuckyTemplates. Questi sono alcuni suggerimenti e trucchi aggiuntivi per capire cosa sta succedendo all'interno dei tuoi tavoli virtuali. Spero che tu l'abbia trovato utile.

Visita il nostro sito Web per ulteriori esercitazioni su LuckyTemplates e dai un'occhiata ai collegamenti seguenti per altri contenuti correlati.

Ti auguro il meglio!


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.