Cosè il sé in Python: esempi del mondo reale
Cos'è il sé in Python: esempi del mondo reale
In questo post del blog, daremo un'occhiata a una domanda che è stata posta sul forum LuckyTemplates e utilizzeremo una tecnica LuckyTemplates del linguaggio DAX per risolverla. Nel caso in cui desideri seguire e scaricare i file, visita il forum LuckyTemplates e vai a . Puoi guardare il video completo di questo tutorial in fondo a questo blog.
Per spiegare lo scenario che tratteremo, abbiamo una semplice tabella come esempio. Nella prima colonna, abbiamo il livello finanziario 1 . Nella seconda colonna, abbiamo una data denominata Completato. Nell'ultima colonna abbiamo la combinazione di livello finanziario e data di completamento, che chiameremo Entrate .
Quindi abbiamo un'affettatrice per la data e il nome del cliente .
Quello che vogliamo fare per un periodo di tempo specifico è identificare le prime tre date diverse da zero. E poi in quelle prime tre date, vogliamo identificare il livello finanziario.
Nella prima versione del provvedimento ho elencato le date inferiori al 29/04/2021 in cui abbiamo delle entrate.
E in queste date, vogliamo identificare i livelli finanziari che hanno fatto delle entrate. Vi spiegherò come possiamo ottenere tale calcolo.
Sommario
Modellazione dei dati
Prima di scrivere il DAX vero e proprio, diamo una rapida occhiata al modello di dati che contiene più tabelle. Siamo interessati solo alla tabella Data , alla tabella Dati , alla tabella Categoria lavoro e alla tabella Cliente .
Si noti che la tabella Customer non è molto importante perché viene utilizzata solo all'interno di un'affettatrice.
La misura delle entrate viene calcolata nella tabella Dati. La categoria Lavoro contiene il livello finanziario che abbiamo sulla matrice. Quindi stiamo usando la colonna Data dalla tabella Data nella nostra affettatrice.
Versione 1
Liberiamoci di tutto dalla matrice e ricominciamo da capo. Creerò una nuova misura e la chiamerò V1 perché questa sarà la prima versione. Daremo un'occhiata anche ad altre due varianti.
Preparazione del contesto del filtro
La prima cosa che faremo è recuperare tutti i valori del livello finanziario dal contesto del filtro. Creeremo una e la chiameremo FinancialLevelInFilterContext .
Per recuperare i valori dal contesto del filtro, utilizzeremo la nella tabella delle categorie di lavoro che contiene la colonna del livello finanziario. Quindi dobbiamo creare un'altra variabile e denominarla Result . Quindi scrivi e chiudi anche questo.
Nel primo argomento, abbiamo una selezione sull'affettatrice di date. In quelle date, vogliamo identificare le date che non hanno uno 0 e hanno almeno un ricavo.
Se si desidera accedere a tutte le date selezionate in quell'affettatrice, è necessario utilizzare la sulla tabella Date.
E poiché abbiamo il livello finanziario sulla matrice, dobbiamo anche assicurarci di rimuovere quel particolare valore dal contesto del filtro. Possiamo utilizzare la sulla categoria Job e quindi scrivere Financial Level 1.
Ora che il nostro contesto di filtro è preparato, possiamo scrivere il calcolo più interno per CALCULATE. Innanzitutto, dichiareremo una variabile, che sarà una combinazione del livello finanziario e della colonna della data, come abbiamo visto nella prima tabella.
Quindi utilizzeremo la e utilizzeremo la tabella Dati per riepilogare queste due tabelle: Categoria lavoro e Tabella data.
Ciò fornirà la combinazione del livello finanziario e della colonna della data che esiste all'interno della tabella dei dati. Quindi creeremo un'altra variabile in cui memorizzeremo il valore della riga delle entrate per la prima variabile che abbiamo creato.
Il nome di questa variabile sarà FinancialLevelAndDatesWithRevenue . Il codice di questa variabile sarà sulla variabile precedente. Quindi creeremo una colonna virtuale che sarà Entrate per avviare la transizione del contesto. Quindi per ogni riga di questa variabile, abbiamo assegnato le entrate.
Questa tabella contiene le entrate, anch'esse pari a zero. Dobbiamo filtrare quelle righe con zero. Per fare ciò, possiamo creare un'altra variabile e chiamarla come RemoveZeroes .
Useremo la sulla variabile precedente, quindi ci assicureremo che le entrate non siano pari a zero. Può essere maggiore di zero o minore di zero, ma non deve essere strettamente uguale a zero.
E poi recupereremo la data dalla variabile RemoveZeroes . Per fare ciò, possiamo creare un'altra variabile e chiamarla KeepOnlyDates .
Posso usare la per eliminare le date duplicate che vengono restituite dalla .
Successivamente, identificheremo le prime tre date in ordine decrescente. Useremo un'altra variabile e la chiameremo Last3Dates , quindi utilizzeremo la .
Quindi utilizzeremo nelle ultime tre date nella colonna della data, quindi utilizzeremo un delimitatore.
Trasciniamo e rilasciamo la nostra misura appena creata all'interno di quella matrice. Il risultato che otteniamo è 31/03/2021, 07/04/2021 e 02/04/2021. Ciò significa che la nostra misura sta funzionando.
Torniamo all'editor ed eliminiamo la parte RETURN CONCATENATEX. Per recuperare quelle ultime tre date, quello che possiamo fare è verificare quali righe della variabile RemoveZeroes fanno effettivamente parte di quelle ultime tre date.
E per questo, creeremo un'altra variabile DatesInLast3Dates e utilizzeremo la funzione FILTER su RemoveZeroes . Questo restituirà una tabella che comprende una categoria di lavoro e una data.
Riassumeremo la colonna delle entrate che abbiamo creato all'interno di quella tabella. Restituiamo SUMX su DatesInLast3Dates, quindi riepiloghiamo la colonna delle entrate.
Con questo calcolo, otteniamo un solo valore per ogni riga, perché abbiamo rimosso la categoria Lavoro dal contesto del filtro.
Useremo la variabile che abbiamo creato all'inizio per controllare se ogni riga della variabile DatesInLast3Dates è disponibile nel contesto del filtro. Possiamo scrivere un'altra variabile e chiamarla IsInFilterContext .
Questo filtrerà le date nella variabile DatesInLast3Dates . Quindi restituirò SUMX sul contesto IsInFilter e riepilogherò la colonna delle entrate.
Una volta premuto Invio , puoi vedere che otteniamo lo stesso risultato che avevamo all'inizio.
Verifica del risultato del calcolo di LuckyTemplates del linguaggio DAX
Per verificare che stiamo effettivamente ottenendo il risultato corretto, possiamo creare una nuova tabella CALCULATE che ci aiuterà nel debug, nell'identificazione e nella verifica che il codice che abbiamo scritto finora stia effettivamente restituendo il risultato corretto.
Creiamo una copia del codice che abbiamo scritto finora. Copierò semplicemente la parte evidenziata di seguito, tornerò indietro per creare una nuova tabella e incollerò il codice evidenziato. Non ci preoccuperemo di nominare questo tavolo perché non ci interessa.
E possiamo semplicemente scrivere RETURN DatesInLast3Dates . Se faccio clic su Confirm , otteniamo una tabella ma sappiamo che in realtà non sta ancora restituendo il risultato corretto perché in realtà abbiamo bisogno di imitare il comportamento dell'affettatrice.
Possiamo avvolgere quel codice all'interno di una CALCULATETABLE e indentare tutto. Nell'ultima parte, scriverò che la data dovrebbe essere maggiore o uguale a 2021-03-15 e che il nome del cliente dovrebbe essere uguale a DHL Supply Chain .
La tabella che abbiamo creato all'interno di quella misura restituisce virtualmente il risultato corretto. Possiamo usare una CALCULATETABLE per verificare la tabella virtuale che stai creando all'interno del tuo calcolo.
Altri calcoli di LuckyTemplates in linguaggio DAX
Ora che sappiamo che il nostro calcolo funziona e capiamo cosa sta effettivamente accadendo dietro le quinte, possiamo esaminare altri metodi per calcolare lo stesso problema. Prima di tutto, creiamo un duplicato della misura che abbiamo già creato.
Versione 2
Questa volta non faremo affidamento sulle funzioni VALUES e FILTER, quindi le elimineremo. Rimuoveremo il risultato restituito, così come l'ultima variabile che abbiamo creato all'interno di CALCULATE. Quindi, convertiremo CALCULATE in CALCULATETABLE.
E invece di restituire un valore scalare, questa volta restituiremo DatesInLast3Dates . Ciò restituirà la stessa CALCULATETABLE che abbiamo creato in precedenza. Utilizzeremo la funzione CALCULATE e, nel primo argomento, calcoleremo la misura delle entrate e inietteremo CALCULATETABLE come contesto del filtro.
Una volta che l'ho portato alla matrice, puoi vedere che stiamo restituendo lo stesso valore totale complessivo per ogni cella.
Utilizzo della funzione KEEPFILTERS
Al momento, sappiamo che il calcolo dietro le quinte funziona correttamente, ma come possiamo sapere con certezza che per ogni cella riportiamo solo il valore per quel livello finanziario?
Con l'aiuto di CALCULATETABLE, abbiamo creato una tabella che contiene il livello finanziario, la colonna della data e la colonna delle entrate. Possiamo usare la funzione filtro chiave per creare un'intersezione tra il contesto del filtro che esiste al di fuori di CALCULATETABLE e quello creato da CALCULATETABLE.
Dopo aver fatto clic su Conferma, possiamo vedere che stiamo riportando il valore corretto per ogni cella e che sia la versione 1 che la versione 2 stanno restituendo il valore corretto.
Allora come funziona? La tabella CALCULATE restituirà il livello Maintenance , quindi Rental , Service External e Spare parts . La creerà un'intersezione tra la manutenzione e quella tabella.
Rental creerà il contesto del filtro iniziale, quindi CALCULATETABLE restituirà tutti i valori della categoria Job. Quindi ci sarà un'intersezione tra Rental e la tabella restituita da CALCULATETABLE. Restituiremo solo le tabelle o le righe solo per quella parte di Noleggio.
Infine, quando inseriamo SUMMARIZE nel contesto del filtro, la funzione CALCULATE calcolerà le entrate solo per Rental. Lo stesso processo avviene per ogni riga.
Versione 3
Diamo un'occhiata a un altro modo di calcolare lo stesso calcolo usando il linguaggio DAX LuckyTemplates. Creiamo una copia della misura Versione 2 e creiamo un'altra misura. Chiameremo questa versione 3.
L'idea alla base di questo calcolo è che poiché stiamo calcolando le entrate utilizzando la funzione CALCULATE, non abbiamo bisogno di utilizzare la parte ADDCOLUMNS perché stiamo duplicando la stessa cosa all'interno e all'esterno di CALCULATE. Invece, possiamo semplicemente scrivere che il Revenue non dovrebbe essere uguale a 0.
Una volta cliccato su Conferma, dobbiamo assicurarci che il codice funzioni quindi trasciniamo la misura all'interno della matrice.
Puoi vedere che il codice restituisce effettivamente lo stesso valore per ogni cella.
Se provo a modificare il contesto del filtro modificando la data nell'affettatrice Data e selezionando un paio di valori da Nome cliente, puoi vedere che tutte e tre le misure restituiscono effettivamente lo stesso valore per ogni riga.
Conclusione
In questo tutorial, abbiamo imparato come utilizzare una logica complessa per tornare indietro nel tempo dalla data di fine per identificare le prime tre date. Sulla base di questa tecnica LuckyTemplates del linguaggio DAX, siamo stati in grado di calcolare le entrate e mostrare solo i valori che esistono nel contesto del filtro. Questo è tutto per ora in questo tutorial.
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