Cosè il sé in Python: esempi del mondo reale
Cos'è il sé in Python: esempi del mondo reale
In questo tutorial, ti mostrerò alcune analisi dettagliate delle misure DAX su come ho messo insieme una delle mie pagine preferite nel report che ho inviato per la decima LuckyTemplates Challenge.
La pagina delle classifiche utilizza molte misure DAX impegnative. Ma con l'aiuto di uno dei nostri esperti di LuckyTemplates, Antriksh Sharma, più alcune ramificazioni di misura, sono stato in grado di ottenere i risultati desiderati.
Sommario
Panoramica della pagina delle classifiche
Prima di passare alla nostra analisi delle misure DAX, voglio mostrarti le diverse parti della pagina su cui stiamo lavorando oggi.
Ecco come appare la pagina delle classifiche . A differenza delle altre pagine del mio rapporto, questa contiene principalmente carte.
Ognuna di queste schede è stata creata usando l'oggetto visivo della scheda predefinito in LuckyTemplates Desktop nel riquadro Visualizzazioni.
Ti consente di tornare ad altre pagine del rapporto attraverso queste icone qui in alto.
Ho discusso le altre pagine di questo rapporto negli altri tutorial. Se visualizzi le altre pagine in questo rapporto, noterai che hanno anche icone che portano a questa pagina Classifiche .
Il lato sinistro della pagina mostra i primi quattro stabilimenti e fornitori complessivi, mentre il lato destro mostra i quattro inferiori.
Ho anche creato singole misure DAX per ottenere risultati più specifici. Questi tre in alto, ad esempio, mostrano i primi quattro e gli ultimi quattro impianti e fornitori in base ai minuti di inattività , ai minuti di inattività medi e ai difetti .
Sono andato ancora più specifico nella parte inferiore della pagina del rapporto. Sul lato sinistro, ho ottenuto i primi quattro e gli ultimi quattro impianti in base ai minuti di inattività, ai minuti di inattività medi e ai difetti.
A destra, ho fatto la stessa cosa ma questa volta basandomi sui dettagli del venditore.
Durante questo tutorial, ti racconterò la storia di come mi è venuta l'idea di questa pagina. Quindi, ti fornirò un'analisi dettagliata su come ciascuna di queste misure è stata creata.
Ottenere idee per le misure DAX da utilizzare
Ho avuto l'idea per le misure DAX in questa diapositiva da uno dei nostri , Antriksh. È un guru del DAX ed è bravissimo nell'ottimizzare le misure. È stato divertente lavorare con lui su questa analisi delle misure DAX.
Circa due settimane prima dell'annuncio della decima sfida di LuckyTemplates, abbiamo avuto una conversazione su Skype su un file PBIX che ha pubblicato sul forum LuckyTemplates.
Come puoi vedere, ho incluso una foto di Antriksh perché è stato l'ispirazione dietro la pagina di cui parleremo qui. Gli ho detto che gli avrei dato credito quando avessi completato questo tutorial.
Il modello è semplice e utilizza alcuni dati di base come Cliente, Prodotti e Vendite.
Ha un breve elenco di paesi sul lato sinistro.
Antriksh ha creato una misura per i primi N paesi per vendite . Ho l'elenco ordinato dal più alto al più basso, come indicato dalla freccia verso il basso.
Sulla destra, c'è una carta che mostra i primi quattro paesi e gli ultimi quattro paesi. L'elenco dei primi quattro mostra Stati Uniti , Australia , Regno Unito e Germania , che corrispondono ai primi quattro dell'elenco.
Tuttavia, gli ultimi quattro si presentano nell'ordine opposto. Invece di andare dal basso, che è l'Armenia , è partito dal quinto della lista, che è il Kirghizistan .
Per questo ho realizzato un'altra carta in basso che utilizza una versione riveduta della misura usata sopra.
Si noti che gli ultimi quattro ora corrispondono all'ordine che volevo: Armenia , Tailandia , Siria e Kirghizistan .
Entriamo nelle misure DAX dietro queste carte. Inizierò con la misura che Antriksh ha creato per la prima carta.
La misura originale ha oltre 97 righe per ottenere i risultati che abbiamo visto su quella prima scheda.
Quando scorriamo verso il basso fino alla ventesima riga, possiamo vedere che Antriksh ha utilizzato ASC . Questo è il motivo per cui gli ultimi quattro si sono presentati in quel modo.
Ora che so dove è iniziato il problema, ti mostrerò come appare la mia misura rivista.
Lascia che evidenzi la seconda carta in modo da poterti mostrare la misura dietro di essa.
Come puoi vedere, ci sono solo 41 righe nella mia formula rivista.
Ho lavorato con Antriksh per ridurlo del 60% o 70% rispetto alla misura originale. Non solo è meno complicato, ma mi dà anche i risultati di cui ho bisogno, con i primi quattro che iniziano dall'1 al 4 e gli ultimi quattro che iniziano dall'8 al 5.
Un paio di settimane dopo la mia discussione con Antriksh, è stata lanciata la decima sfida di LuckyTemplates. Parte dei requisiti prevedeva un sistema di classificazione, che mi ha fatto ripensare alla misura DAX di Antriksh. Mi sono reso conto che posso copiare e incollare la misura, quindi applicare alcune ramificazioni della misura per ottenere i risultati di cui ho bisogno.
Analisi della misura Dax: costruire la misura passo dopo passo
Ora analizzerò le misure che ho utilizzato per la pagina Classifiche per ottenere i risultati desiderati. Questa analisi della misura DAX può aiutarmi a spiegare come funziona la misura, considerando quante righe sono state necessarie per completarla.
Nei miei altri tutorial, ho mostrato come mi piace raggruppare le mie misure per rendere le cose più organizzate . Quindi ho creato una sottocartella per Top N v2.
All'interno di questa cartella c'è la mia misura per i primi N minuti di inattività dei fornitori di impianti . Vedrai che ha le stesse 41 righe di codice che ti ho mostrato prima mentre discutevo della misura di Antriksh. Fondamentalmente, tutto quello che dovevo fare era sostituire alcuni elementi per ottenere i risultati desiderati.
Per scomporlo meglio, ho diviso l'intera misura in 9 parti diverse. Esaminerò ciascuno di questi passaggi da uno a nove e spiegherò cosa sta realizzando ciascuno di questi.
La misura utilizza una serie di variabili in modo da poter ottenere risultati più chiari. L'impostazione di queste variabili aiuta l'utente finale a vedere come si combina la misura e spiega i dettagli di come ho ottenuto ogni risultato.
Iniziamo con il primo passaggio, che imposta il chiamato BaseTable.
In questa BaseTable, puoi vedere che sto facendo riferimento i dati per Plant Location e Vendor .
Quando torni al file PBIX, vedrai la prima scheda che fa riferimento sia alle piante che ai fornitori. Questo è il motivo per cui ho bisogno di tutti i dati qui, al contrario della scheda più in basso, che è anche per i minuti di inattività, ma utilizza solo i dati sulla posizione dell'impianto.
Poiché il primo passaggio è semplice, passiamo al secondo passaggio.
Il secondo passaggio inizia con la funzione .
Questa funzione fa riferimento alla variabile che ho creato nel passaggio 1 e ai minuti di inattività .
Si assicura che venga visualizzato un valore mettendo insieme le funzioni e . Voglio anche che i risultati siano maggiori o uguali a zero. Questo perché il set di dati utilizzato per questo report includeva alcune combinazioni in cui l'impianto o il fornitore sono vuoti. Ci sono anche voci in cui il valore è zero.
Il terzo passaggio coinvolge ancora un altro insieme di variabili, a partire dal valore di N.
Qui, N è uguale a 4 perché voglio che vengano visualizzati i primi quattro e gli ultimi quattro.
Imposta anche un prefisso per Top & N, più un trattino.
Quando viene messo insieme, vuole semplicemente mostrare "Top 4 -", che è il modo in cui la carta corrispondente inizia prima di enumerare i risultati attesi.
Ora, andiamo al quarto passaggio. È qui che inizio a ottenere i risultati attesi.
Alcuni penserebbero di usare in questo caso. Dopotutto, sto cercando di classificare le voci e ottenere i migliori risultati. Tuttavia, Antriksh e io abbiamo ritenuto che sarebbe stato più appropriato in questo caso poiché abbiamo bisogno solo dei primi quattro in ordine ASC .
Successivamente, ho utilizzato la funzione , che utilizza i dati sulla posizione dell'impianto.
Imposta anche il formato su come voglio che venga visualizzato l'elenco. Ecco perché vedrai che ha una barra rovesciata e una virgola, più virgolette per indicare gli spazi. È anche impostato sull'ordine ASC , quindi se torno al file PBIX, vedrai l'elenco dei primi quattro con barre rovesciate e virgole tra i risultati.
Il quinto passaggio della misura inizia sostituendo l'ultima virgola dell'elenco con un And .
Quando torni alla diapositiva, vedrai che l'ultima voce ha un "e" prima del fornitore e dell'ubicazione dell'impianto.
Questo è ciò che viene realizzato nel passaggio cinque. Sta creando un elenco e utilizzando la funzione per LastCommaPosition .
Si noti che questo dice che N è maggiore di 2. Ciò significa che la sostituzione avviene dopo la terza stringa.
Il sesto passaggio sembrerà familiare perché fondamentalmente copia la stessa cosa che ho fatto in cima per iniziare l'elenco con "Top 4 -".
L'unica differenza qui è che voglio che venga visualizzato come "Bottom 4 -" invece di "Top 4 -".
La parte che ho discusso in precedenza sull'uso è ancora una volta usata qui in fondo, ma ora sto chiamando la variabile BottomData invece di TopData. Ancora una volta, questa parte inserisce la barra rovesciata e la virgola tra i nomi delle piante e dei venditori.
Quando guardiamo indietro alla misura originale di Antriksh, questa è anche la stessa parte in cui ha usato ASC , il che ha comportato che l'elenco non uscisse come mi aspettavo. Ecco perché sto usando DESC qui invece.
Quindi sostanzialmente, da questo punto in poi, la maggior parte è semplicemente copiata e incollata dalle parti precedenti della misura. Sostituisco solo la parola "Top" con "Bottom" nella maggior parte dei casi.
Per il passaggio 8, voglio cambiare l' ultima virgola con la parola And .
Il nono passaggio conclude questa misura.
Questo utilizza la funzione con il numero 10. Ciò garantisce che i primi 4 e gli ultimi 4 vengano visualizzati su righe separate. Pensalo come il tasto Invio sulla tastiera. Ti fa scendere alla riga successiva in modo che i quattro in alto e in basso non compaiano su una sola riga.
Verifica dei risultati
Antriksh e io siamo riusciti a ridurre le oltre 90 righe originali di DAX in 41 righe. Tuttavia, 41 righe potrebbero essere ancora molte per alcuni utenti. Scomporre quella misura nel modo in cui l'abbiamo fatto è stato un ottimo modo per capire perché la misura doveva essere scritta in quel modo.
Ora che ho spiegato in cosa consisteva ogni passaggio, è il momento di verificare se quella misura fa davvero quello che dovrebbe fare. Andiamo alla pagina Classifiche e verifichiamo i risultati con l'altra parte del report.
Inizierò con Plants/Vendors By Downtime Minutes .
Questo mostra i primi quattro come Linktype in New Britain, Flashpoint in Frazer, Quinu in Twin Rocks e Layo in Henning. Per quanto riguarda gli ultimi quattro, mostra Wikido a Middletown come il peggiore in assoluto.
Ora andrò alla pagina Vendors and Plants Combined per vedere se i risultati corrisponderanno.
Con la colonna Classifica per minuti di inattività ordinata dall'alto verso il basso, mostra il risultato corretto per i primi quattro.
Alcuni di voi potrebbero chiedersi, tuttavia, perché la Nuova Britannia si presenta al secondo posto in questo elenco, quando compare in cima alla scheda della pagina delle classifiche .
Si noti che la classifica mostra tre voci come prime 1. Queste sono state classificate utilizzando RANKX.
Tuttavia, se guardi la colonna dei minuti di inattività , mostra che New Britain mostra 0 mentre Frazer e Twin Rocks mostrano 1 ciascuno. anche se fossero tutti classificati come numero uno.
Ora, controlliamo se gli ultimi quattro sono corretti. Basta ordinare la classifica per minuti di inattività in ordine decrescente.
Come puoi vedere, mostra Middletown, Waldoboro, Barling e Chesaning come gli ultimi quattro della carta. Ciò significa che la misura per impianti/fornitori per minuti di inattività è corretta.
Ora, diamo un'occhiata alla scheda Plants By Downtime Minutes .
Ciò dimostra che i primi quattro sono Reading, Middletown, Waldoboro e Clarksville. Gli ultimi quattro sono Riverside, Charles City, Twin Rocks e Chesaning.
Per verificare questi risultati, controllerò nella pagina Piante e vedrò se i risultati corrispondono. La più grande differenza qui è che la carta che abbiamo verificato in precedenza era basata sia sui dati delle piante che su quelli dei venditori, mentre questa guarda solo i dati delle piante.
Quando ordiniamo la classifica in base ai minuti di inattività dall'alto verso il basso, mostra che i primi quattro sono Reading, Middletown, Waldoboro e Clarksville.
Ora, questa volta invertiamo la classifica per vedere se gli ultimi quattro corrispondono. Vedrai che tra le 30 piante della nostra lista, Riverside, Charles City, Twin Rocks e Chesaning ottengono le ultime posizioni.
Ciò significa che stiamo vedendo i risultati corretti per le piante.
Questa volta, diamo un'occhiata a una carta che classifica i fornitori per difetti .
Questa volta andrò alla pagina dei fornitori per vedere se Dablist è il miglior fornitore e Yombu è il peggiore in base ai difetti.
Quando ordiniamo i fornitori dal migliore al peggiore, sembra che i primi quattro corrispondano alla scheda nella pagina delle classifiche .
Fammi cambiare la posizione dal peggiore al migliore e vedere se anche gli ultimi quattro corrispondono.
Vedrai che Yombu è davvero il peggiore, insieme agli altri tre inclusi negli ultimi quattro elenchi della carta.
Analisi della misura Dax: applicazione della diramazione della misura
L'analisi della misura DAX che abbiamo fatto in precedenza ha esaminato solo la misura dietro Plants/Vendors By Downtime Minutes . Ma come ho lavorato sulle misure per le altre carte? È qui che entra in gioco la ramificazione delle misure .
Il branching delle misure comporta l'uso di una misura esistente per derivare altri risultati.
In questo rapporto, ho semplicemente copiato e incollato la misura di cui abbiamo discusso in precedenza e modificato alcuni elementi per adattarli a ciò di cui avevo bisogno.
Il nome della misura è ovviamente la prima cosa che cambierò. Ma oltre a questo, devo anche modificare i dati a cui mi riferisco. Ad esempio, abbiamo utilizzato sia la posizione dell'impianto che i dati del fornitore per la nostra misura originale.
Ma se userò la stessa misura per Plants By Downtime Minutes , dovrei rimuovere i dati del fornitore e concentrarmi solo sulla posizione dell'impianto.
Dovrò cambiarlo per tutte le altre parti della stessa misura che fa riferimento anche a entrambi i set di dati, come quando ho usato CONCATENATEX .
Lo stesso vale per i minuti di inattività . Se dovessi lavorare su una scheda che esamina la media dei minuti di inattività o dei difetti , tutto ciò che devo fare è modificare questa parte.
Per quanto riguarda la parte in cui si dice "@DowntimeMins" nella misura, non sarebbe male mantenerla così anche se mi riferisco ai miei difetti o ai miei minuti medi di downtime.
Ma se sei il tipo a cui piace mantenere le cose in un certo ordine, potresti entrare e cambiare anche questo. Ricorda solo che se cambi questo, dovresti cambiarlo per tutta la pagina. Ciò significa impegnarsi ulteriormente per ottenere gli stessi risultati.
Puoi solo immaginare quanto tempo ho risparmiato utilizzando measure branching . In questo modo significa che non dovrò continuare a creare nuove misure per ogni parte del report su cui lavoro. Devo solo modificare la misura esistente in base ai risultati che voglio vedere, riducendo notevolmente i tempi di sviluppo del mio rapporto.
Per mostrarti come ho fatto, diamo un'occhiata a Vendors By Downtime Minutes .
Quando alzo la misura, vedrai che ha le stesse 41 righe di Plants / Vendors By Downtime Minutes .
Tuttavia, nel passaggio 1, ho fatto riferimento solo ai dati del fornitore e ho rimosso la posizione dell'impianto.
Ho modificato i dati anche in altri luoghi in cui è applicabile.
Ho mantenuto i minuti di inattività poiché questo è ciò su cui sto basando i risultati.
Quindi queste sono correzioni rapide alla misura in modo che possa essere applicata alle altre aree del rapporto.
Lasciate che vi mostri un altro esempio qui. Questa volta, diamo un'occhiata a Vendors By Defects .
Ancora una volta, stiamo solo guardando il venditore qui.
Quello che ho cambiato qui è il riferimento a Downtime Minutes . Invece, ho usato Defects .
Mi sono anche assicurato che le altre righe stessero ancora utilizzando i dati per Vendor.
Misure DAX in LuckyTemplates Utilizzo della diramazione di misure
Implementazione di gruppi di misure DAX nei report: una revisione della modellazione di LuckyTemplates
Estrazione di informazioni univoche in LuckyTemplates Utilizzo della classificazione delle misure DAX
Conclusione
Quello era un potente lavoro DAX di Antriksh. Mi è decisamente piaciuto lavorarci , diramarlo e applicarlo alle diverse parti del mio report .
L'approfondita analisi delle misure DAX che abbiamo svolto è stata anche un ottimo modo per comprendere ogni aspetto del processo. Lavorare su una misura lunga può sembrare scoraggiante all'inizio, ma un'analisi approfondita della misura DAX come questa può aiutare a sistemare le cose.
Lavorare su questa pagina ha anche sottolineato l'importanza di avere una comunità collaborativa come quella che abbiamo qui a LuckyTemplates. È fantastico che tutti abbiano l'opportunità di lavorare con persone come Antriksh, così come altri membri ed esperti che hanno anche loro alcuni suggerimenti e trucchi.
Ti auguro il meglio,
Jarrett
Cos'è il sé in Python: esempi del mondo reale
Imparerai come salvare e caricare oggetti da un file .rds in R. Questo blog tratterà anche come importare oggetti da R a LuckyTemplates.
In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.
Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.
In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.
Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.
Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.
Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.
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