Cosè il sé in Python: esempi del mondo reale
Cos'è il sé in Python: esempi del mondo reale
Ti mostrerò come mantenere aggiornato il tuo set di dati di pratica ogni volta che esegui un refresh . Puoi guardare il video completo di questo tutorial in fondo a questo blog.
Se vuoi davvero migliorare le tue abilità DAX, il modo è usarlo e metterlo in pratica. E per farlo, avresti bisogno di un set di dati di pratica che ti aiuti a visualizzare e lavorare su possibili scenari di vita reale.
Il problema con i set di dati di pratica è che i dati sono solitamente statici . Per esercitarti in modo efficiente, devi dare l'impressione che i dati siano in tempo reale.
Sommario
Impostazione di un percorso file per il set di dati dell'esercitazione
Per i miei dati di esempio, ho un file Excel contenente i dati di vendita del 2014, 2015 e 2016.
Questi sono i dati che devo aggiornare.
La posizione del documento può essere trovata qui sulla mia barra di accesso rapido.
Ne ho bisogno per impostare un parametro per il percorso del mio file. Quindi copierò la posizione del documento.
C'è un punto di accesso alla barra di accesso rapido sul lato destro.
Una volta che lo premo, ottengo questa schermata.
Quindi andrò su Tutti i comandi e poi sceglierò Posizione documento . Aggiungilo alla barra di accesso rapido e premi OK.
Ora, entrerò in Power Query per creare il parametro che manterrà il percorso del mio file. Questo passaggio è importante perché consente di ripristinare tutte le query all'interno del modello nel caso in cui un altro utente modifichi la posizione del file.
Quindi creerò un nuovo parametro .
Lo chiamerò FileLocation .
In tipo, selezionerò Text . E per Current Value , incollerò la posizione del documento che ho copiato in precedenza.
Creerò una nuova query.
Quindi sceglierò i dati di esempio che userò come set di dati di pratica.
Qui verranno visualizzate diverse tabelle poiché ho i dati sulle vendite del 2014, 2015 e 2016. Devo solo scegliere la prima, che è Sales_2014 .
Ora che ho scelto i dati Sales_2014, è il momento di modificare il percorso del file hardcoded in un percorso del file dinamico .
Vado nell'Editor avanzato e seleziono tutto ciò che è correlato alla posizione del file .
Quindi, lo cambierò nel parametro FileLocation che ho creato in precedenza.
Quindi premerò Fine per bloccare tali modifiche nella query Sales_2014.
Creazione della cartella di preparazione dei dati
Osservando i passaggi applicati per la query Sales_2014, farò clic sul passaggio di navigazione . Questo mi mostra che fa riferimento al passaggio Source .
Fa inoltre riferimento a Sales_2014 che viene visualizzato come Table . Mostra anche che sta estraendo dati dalla colonna Dati.
Ora, fammi guardare il passo successivo della Sorgente .
Il passaggio Source mi mostra tutto ciò che risiede nel mio file Excel . Se controllo quelle coordinate, vedo Sales_2014 e sotto Kind, dice Table .
Quando cerco la colonna dei dati, mostra l' oggetto Table che è stato estratto.
Quindi posso duplicare questa query per ottenere i dati del 2015 . Per farlo, devo solo fare clic con il tasto destro su Sales_2014, quindi scegliere Duplicate.
Quindi, tornerò al passaggio di navigazione.
Cambierò quell'anno dal 2014 al 2015.
Lo rinominerò anche qui sotto Proprietà. Lo chiamerò Vendite_2015.
Questa volta duplicherò Sales_2015.
Quindi tornerò alla fase di navigazione e cambierò l'anno in 2016.
Ora ho i miei dati di vendita completi. Ma queste query non dovrebbero essere caricate nel mio modello . Devo solo fare clic con il tasto destro su ciascuno di essi e deselezionare Enable load .
Ora selezionerò tutte le query e le inserirò in un'unica cartella per rendere le cose più organizzate.
Chiamerò questa cartella Data Prep .
Ottenere l'offset del giorno
I dati di esempio qui sotto Data Prep saranno statici . Ciò significa che la prima e l'ultima data non cambieranno mai .
Quindi andrò in Sales_2016 e ordinerò la colonna Data ordine in ordine decrescente per ottenere l'ultima data da questo set di dati .
L'ultima data in questo set di dati è il 31 dicembre 2016 .
Ora creerò una nuova query.
Quindi, controllerò qual è il Day Offset dall'ultima data nel set di dati a oggi. Questo significa che devo scoprire che giorno è oggi. Per farlo, userò la funzione DateTime.FixedLocalNow . Questo mi darà la data e l'ora dalla macchina su cui sto lavorando.
Ma non ho davvero bisogno della porzione di tempo qui. Ho solo bisogno della parte della data di questo valore.
Quindi, estrarrò la data usando Date.From .
Quindi da quel valore sottrarrò l'ultima data nel mio set di dati . Poiché i dati sono statici, posso utilizzare il valore di data intrinseco . Quindi questa è #data e quindi riferimento al 31 dicembre 2016.
Ora, devo estrarre il numero da questa differenza . Quindi aggiungerò Number.From e lo chiuderò con una parentesi. Quindi, premi Invio.
Lo rinominerò come DayOffset .
Impostazione di intervalli di date dinamici
Ho anche bisogno di intervalli di date dinamici per la mia tabella delle date. Inizierò facendo clic con il pulsante destro del mouse sulla cartella Data Prep e creando una nuova query vuota.
Quindi, lavorerò sulla data di inizio della mia tabella Date.
Voglio sempre il primo giorno dell'anno come data di inizio. Quindi inserirò il segno di uguale e utilizzerò la funzione Date.StartOfYear .
Dal momento che devo assegnargli un valore, lo compenserò utilizzando Date.AddDays .
Quindi utilizzerò di nuovo il valore di data intrinseco e utilizzerò la prima data sul mio set di dati , che è il 1 giugno 2014.
Ho anche bisogno del numero di giorni che ho calcolato nel mio DayOffset , quindi lo aggiungerò.
Una volta che premo invio, mi dà 1 gennaio 2017 . Questo sarà il primo appuntamento nella mia tabella degli appuntamenti.
Lo rinominerò in fxStartDate .
Ora posso impostare la mia data di fine. Copierò questa sintassi che ho usato nella mia data di inizio.
Creerò una nuova query vuota.
Quindi rinominalo in fxEndDate .
Quindi incollerò la sintassi dalla mia Data di inizio .
Invece di StartOfYear , cambierò questo in EndOfYear.
Userò anche l'ultima data del mio set di dati , che è il 31 dicembre .
Quando premo invio, restituisce il 31 dicembre 2020 .
Creazione di una singola tabella di vendita
Ho intenzione di unire le 3 tabelle in un'unica tabella Sales . Per fare ciò, creerò una nuova query.
Lo chiamerò il mio tavolo delle vendite .
Quindi combinerò Sales_2014, Sales_2015 e Sales_2016 in un'unica tabella.
So che puoi farlo tramite il nastro, ma c'è anche un'opzione per farlo direttamente nella barra della formula. Sceglierò la seconda opzione.
Inizierò con Table.Combine .
Table.Combine richiede un elenco di tabelle . Quindi aggiungerò un inizializzatore di elenco , ovvero quelle parentesi graffe , quindi nominerò le 3 query . Premi Invio dopo.
Trasformare la colonna della data dell'ordine
Ora che ho la maggior parte degli elementi di cui ho bisogno, genererò una parte fondamentale della sintassi che userò in seguito per completare il mio set di dati di pratica dinamica.
Inizierò selezionando due colonne numeriche. Posso utilizzare l' indice della regione di consegna e l' indice delle descrizioni dei prodotti . Da parte tua, puoi premere Maiusc o Ctrl per selezionare entrambe le colonne.
Nella scheda Trasforma , selezionerò Absolute Value .
Se guardo la barra della formula, mostrerà la funzione Table.TransformColumns . Questa è la chiave per la soluzione finale.
La funzione accetta un elenco di elenchi di trasformazione . Come puoi vedere, ci sono 2 elenchi qui nidificati l'uno dentro l'altro.
Fa riferimento al nome della colonna come testo. Ecco perché è stato fatto riferimento all'indice della regione di consegna qui nel primo set.
Quindi aggiunge una fase di trasformazione .
Fa lo stesso in un elenco separato per la colonna Product Description Index .
Ora vado all'Editor avanzato .
Non voglio valori assoluti . Quindi la prima cosa che farò è compensare il mio appuntamento . Creerò una funzione chiamata fxUpdateDate per farlo. Utilizzerà la data corrente, che inserirò come cDate .
Quindi, userò di nuovo la funzione Date.AddDays , che usa anche cDate . Userò anche il DayOffset che ho creato in precedenza.
Tutto ciò che fxUpdateDate fa è prendere la data. Quindi, se lo passo alla funzione Table.TransformColumns , inizierà a controllare ogni data registrata.
Quindi, se sto lavorando sulla prima riga qui, per esempio, considererò il 1° giugno 2014 come cDate.
E ogni volta che la funzione viene chiamata, aggiungerà quel DayOffset che ho creato.
Ora, il passaggio Table.Transform viene visualizzato in Calculated Absolute Value .
Lo rinominerò prima e lo chiamerò UpdateOrderDate.
Questo passaggio UpdateOrderDate coinvolge il mio Table.TransformColumns che è uguale a Source.
La tabella iniziale elencata è l' indice della regione di consegna . Ma non c'è bisogno di trasformarlo. Quindi cambierò quella prima colonna a cui si fa riferimento nella colonna OrderDate .
Qui dice anche che la trasformazione avverrà in valori assoluti.
Dal momento che non lo voglio, lo cambierò in fxUpdateDate .
Anche il tipo non sarà un valore assoluto, quindi devo anche cambiare questa parte.
Lo trasformerò in una data .
Ho solo bisogno di una trasformazione, quindi eliminerò il secondo elenco insieme al passaggio di trasformazione fornito con quel set...
… quindi è solo una trasformazione per la colonna OrderDate.
Poiché ho rinominato il passaggio per Calculated Absolute Value, devo cambiarlo anche nella mia dichiarazione in.
Ora mostra anche UpdateOrderDate .
Quindi la colonna OrderDate ora chiamerà questa funzione per ogni record in Table.TransformColumns .
Esaminando la colonna Data ordine, posso vedere che questo è stato aggiornato.
E se lo ordino in ordine decrescente, mostra il 7 luglio 2020 come data corrente.
Quindi rimuoverò quel passaggio Ordina perché non ne ho davvero bisogno. L'ho fatto solo per verificare se anche la data corrente fosse stata aggiornata.
Applicazione dell'intelligenza temporale utilizzando il codice M
Il mio modello è incentrato sui dati di vendita . Dal momento che ho intenzione di fare un po' di intelligenza temporale, avrei bisogno di una tabella Date .
Quindi andrò al . In M-code Showcase , entrerò nell'argomento Extended Date Table .
Scorri fino all'inizio della pagina e copia l'intero codice .
Tornando al mio modello, creerò una nuova query vuota e incollerò quel codice M in . Premere Fatto.
Rinominerò quella query in fxCalendar .
Per i miei parametri, userò il 1 gennaio per StartDate e il 31 gennaio per EndDate . Quindi premere Richiama.
Una volta visualizzato il tavolo, lo rinominerò come Dates .
Ricorda che ho già creato le date di inizio e di fine osservando la prima data sul set di dati di esempio e compensandola con il mio DayOffset. Quindi il fxStartDate qui si presenta come 1 gennaio 2017 .
Per quanto riguarda fxEndDate, restituisce il 31 dicembre 2020 .
Posso tornare alla tabella delle date e aggiornare anche il passaggio della fonte .
Elenca i parametri nell'ordine in cui sono stati chiamati. Il primo parametro dovrebbe mostrare la data di inizio .
Lo cambierò in fxStartDate .
Sostituirò anche il secondo parametro.
Inserirò fxEndDate .
Dopo aver premuto Invio, la trasformazione è completa. Ora ho un set di dati di pratica completamente aggiornato che rimarrà sempre aggiornato.
Farò semplicemente clic su Chiudi e applica per bloccare tutti questi passaggi.
Creazione di una tabella di query di data dinamica in LuckyTemplates: esercitazione sull'editor di query
Impostazione di una data di inizio e di una data di fine dinamiche per le tabelle di data di Power Query
utilizzando la funzione di offset nelle tabelle di data estesa
Conclusione
Come accennato in precedenza, avere il proprio set di dati di esercitazione dinamico migliorerà sicuramente il livello del gioco quando si tratta di LuckyTemplates. Ti consente di mettere in pratica le tue abilità e conoscenze fingendo di lavorare su uno scenario di vita reale.
Se vuoi saperne di più su come rendere dinamiche le date di inizio e di fine, in particolare per un set di dati di esercitazione che stai utilizzando, puoi consultare il forum di LuckyTemplates. Ci sono molte conversazioni su questo e altri argomenti rilevanti. Potresti anche trovare altri approcci che potrebbero funzionare per te.
Ti auguro il meglio,
Melissa
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