Codice M nelle colonne personalizzate Power Query | PotenzaBI

Codice M nelle colonne personalizzate Power Query | PotenzaBI

Nel blog di oggi presenterò la soluzione al , incluso un framework semplice e generalizzabile per incorporare il codice M in una colonna personalizzata di Power Query. Puoi guardare il video completo di questo tutorial in fondo a questo blog.

La possibilità di creare colonne in Power Query utilizzando il codice M aumenta la capacità di risolvere problemi più complessi.

Prima di entrare nella soluzione, esaminiamo la natura del problema. Ho fornito un grande set di dati da Kaggle di 93 anni di dati sugli Oscar. Volevamo estrarre la migliore attrice, le vincitrici e in particolare quelle donne che avevano vinto più di un premio per la migliore attrice e quindi visualizzare utilizzando la Queryon Timeline l'anno in cui hanno vinto il loro secondo premio.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

Avevo una serie di obiettivi quando mettevo insieme questo problema. Su cosa vogliamo che si concentri il problema e quali vogliamo che siano gli obiettivi principali?

E in questo ce n'erano tre.

Il primo consisteva nell'imparare o sviluppare un po' di pratica con il costrutto Group By e All Rows . È qualcosa su cui mi sono davvero concentrato perché risolve un'ampia gamma di problemi in modo abbastanza semplice e spesso elimina la necessità di un DAX molto complesso.

Il secondo obiettivo è particolarmente per le persone che non erano abituate a lavorare in M. Volevo creare un problema che sviluppasse un po' di conforto nello scrivere codice M di base . Volevo forzare quel modo di pensare su com'è sviluppare il codice M di base e il processo per farlo.

Secondo un capitolo del libro di Gil Raviv su Power Query, circa il 40% dei problemi in Power Query può essere risolto solo attraverso l'interfaccia utente. Ma questo, con l'aggiunta di un codice M di base e la possibilità di creare colonne personalizzate, non è poi così difficile. Puoi aumentare quella percentuale oltre l'80%. Puoi raddoppiare le tue capacità di risoluzione dei problemi con alcune abilità fondamentali e semplici.

La terza cosa che voglio fare è presentare l'oggetto visivo personalizzato Queryon Timeline a coloro che non lo conoscono. È uno che ho davvero imparato ad amare. L'ho usato in diversi casi e penso che fornisca un modo davvero unico di visualizzare i dati.

Sommario

Approccio risolutivo al problema della settimana #9

Pensando a questo problema, ho voluto fare un esperimento mentale. E se invece di un file CSV ti dessi solo 93 fogli di carta (uno con il vincitore della migliore attrice di ogni anno), come sarebbe la soluzione?

La tua soluzione probabilmente assomiglierebbe a quella che ho qui sotto.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

Penso che tutti avrebbero una soluzione relativamente simile a quella. Una volta ottenuta la soluzione concettuale, si tratta solo di capire come fare in modo che Power Query esegua ciascuno di questi passaggi.

E così, lo prenderò solo come un profilo generale, e poi analizzerò il modo in cui rendono operativa questa soluzione concettuale in qualcosa in Power Query. L'approccio che utilizzeremo è quello che Melissa, la nostra guru residente di Power Query, chiama imparare da Google.

Ora, se torniamo al nostro modello concettuale, i primi due passaggi includono l'ordinamento dei foglietti in gruppi per attrice e l'eliminazione di qualsiasi gruppo con un solo foglio. Quindi, vogliamo fare un conteggio. Se non sappiamo come farlo, possiamo andare su Google e provare a cercare un termine. In questo esempio, ho provato "group in power query". Con ciò, possiamo trovare tutto ciò che dobbiamo sapere su come eseguire questo raggruppamento.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

Utilizzo di Raggruppa per in Power Query

Quindi possiamo passare a Power Query e iniziare a rendere operativa la nostra soluzione. Quello che ho fatto è che in questa tabella degli Oscar, ho appena esaminato e inserito il file CSV e filtrato fino ai vincitori della migliore attrice per ogni anno. Quindi, abbiamo solo le 93 righe di nome e anno del film.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

Se entriamo in Power Query e andiamo a quella tabella, la prima cosa che vogliamo fare è questo Group By .

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

Mi è sempre piaciuto passare ad Advanced solo perché fornisce un'interfaccia leggermente migliore anche se quello che stiamo facendo è piuttosto semplice.

Vogliamo raggruppare per Name , quindi creiamo una colonna, AllData , e questa sarà solo la nostra All Rows. Invece di restituire solo l'aggregato, restituirà l'aggregazione, ma con tutte le righe che vogliamo rimangano intatte.

Avremo un'altra colonna chiamata Count e la vogliamo quando andremo a Count Rows . Vogliamo trovare il numero di foglietti in ogni pila. Quindi, facciamo clic su OK.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

Possiamo quindi fare clic su questo spazio bianco nella tabella e otteniamo solo un foglietto.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

Ma poi per quelli che hanno più conteggi, vedrai che otteniamo tutti i record.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

Successivamente, vogliamo filtrare quelli (1). Quindi, praticamente stiamo eliminando tutte quelle pile che hanno solo un nome. Selezionare 1 e fare clic su OK.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

E ora siamo arrivati ​​ai 14 vincitori multipli. E ora siamo arrivati ​​ai 14 vincitori multipli. Se lo prendiamo e lo espandiamo, possiamo togliere Name perché abbiamo già Name qui e mantenere solo year_film .

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

Ora siamo scesi a 30 righe perché alcune di queste avranno più vittorie. E in realtà possiamo anche eliminare la colonna Conte perché abbiamo già eliminato gli 1 con uno solo.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

Passiamo ora alla fase successiva del nostro modello concettuale, che consiste nell'ordinare i foglietti in ciascun gruppo per data crescente, quindi scegliere il secondo giorno che si verifica all'interno di ciascun gruppo.

L'ordinamento è facile. Possiamo tornare in Power Query e fare un ordinamento crescente per attrice e poi per data.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

E ti mostrerà un uno e un due.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

Quindi siamo ordinati bene, e ora vogliamo avere come un indice o una classifica che abbia per ognuno, e poi essere in grado di prendere il secondo in ogni pila.

Incorporando il codice M Table.AddIndexColumn

E così ora siamo tornati al nostro approccio "Imparato da Google" in cui possiamo solo cercare il rango o l'indice, ma possiamo anche andare alla Guida di riferimento di Microsoft . Ho creato uno strumento esterno che utilizzo sempre che ti fa rimbalzare da LuckyTemplates alla Guida di riferimento di Microsoft.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

Nella Guida di riferimento Microsoft, tutto è raggruppato per funzione e ha una casella di filtro in cui puoi cercare tutto ciò di cui hai bisogno. In questo caso, digitiamo Rank o Index nella casella del filtro. Non ci dà nulla per Rank, ma per Index, abbiamo questo Table.AddIndexColumn , che è pertinente e applicabile a ciò che stiamo cercando. Fornisce inoltre alcuni esempi su come utilizzare questa funzione.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

Quindi andiamo in Power Query e raggruppiamo la nostra tabella per Attrice.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

Con ciò, otteniamo il gruppo di 14 vincitori per tabella. E se entriamo in una di queste tabelle diciamo, Frances McDormand, possiamo vedere che la tabella è ordinata per Data.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

E poi, ecco il grande passo, che consiste nell'aggiungere una colonna personalizzata di Power Query e inserire il nostro codice M. Avremo Table.AddIndexColumn , quindi aggiungeremo il campo AllData . Chiameremo la nostra nuova colonna (come testo) qui come Index , e inizieremo il nostro Index da uno (1) e lo incrementeremo di uno (1).

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

E qui otteniamo questo indice perfetto.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

Ora possiamo eliminare la nostra colonna AllData qui poiché tutto è stato raccolto in Custom . Successivamente, possiamo semplicemente espandere la colonna Personalizzata, togliere Nome, perché anche qui abbiamo già Nome. Con quello, quello che abbiamo è quell'indice numerato per ognuno.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

Infine, possiamo fare quello che abbiamo fatto su Count, ovvero filtrare tutti quelli che sono nella seconda vittoria.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

E ci siamo. Ecco la nostra soluzione.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

Visualizzazione utilizzando l'oggetto visivo personalizzato della sequenza temporale di query

Ci sono un paio di altre cose che vogliamo fare qui, che sono tutte basate sull'implementazione di Queryon Visual . Faremo un'unione e aggiungeremo semplicemente l'URL dell'immagine.

Quindi uniremo le query, tireremo su quella tabella Attrici e ci uniremo su Name . Otteniamo una corrispondenza da 14 a 14 righe, il che è positivo.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

E poi nella colonna Attrici, espanderemo solo verso l'esterno e ci espanderemo all'URL.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

E ora abbiamo questa colonna con gli URL.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

C'è un'altra cosa che viene fornita con la conoscenza della Queryon Timeline. Queryon funziona meglio quando si tratta di date complete piuttosto che di anni . E quindi, questo è qualcosa che viene solo con la sperimentazione, ma possiamo prendere la colonna Year e creare una Column From Examples . Quello che vogliamo fare qui è semplicemente trasformare gli anni in date.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

Questo migliorerà la formattazione. È qualcosa che non mi aspetto che tu sappia fin dall'inizio, ma viene fornito con la pratica con Queryon. Facciamo clic su OK e questo viene inserito come valore di data. Possiamo eliminare la tabella dell'indice perché non ne abbiamo più bisogno e possiamo quindi cambiare il nome della colonna year_film in Year .

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

Passiamo ora all'aspetto della visualizzazione di questo e voglio evidenziare l'ingresso di uno dei membri di LuckyTemplates, Jose, che ha fatto davvero un ottimo lavoro sulla visualizzazione.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

Tornando a Power Query per la visualizzazione, vale la pena ricordare che Microsoft ha recentemente implementato alcune modifiche al modo in cui certificano le immagini personalizzate . Come parte di tale certificazione, hanno rafforzato l'uso di immagini URL esterne.

Se utilizzi effettivamente la versione di Queryon Timeline che si trova su App Source (versione 1.05), non sarai in grado di inserire queste immagini URL. E così, ora hai la possibilità di utilizzare questo 1.04, mantenendo le immagini dell'URL, dove hanno sul loro sito un modo per incorporare immagini binarie 64 direttamente nel file PBIX.

Ora ho accennato alla modifica di quell'anno in un campo data, quindi dobbiamo collegarlo al nostro modello di dati.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

Cambiamo semplicemente da uno a uno a uno a molti e Single direction sul filtro Cross, quindi rendiamo attiva questa relazione .

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

Successivamente, per il campo dell'URL immagine, dobbiamo assicurarci che nella categoria Dati non venga visualizzato come Non categorizzato, ma come URL immagine .

Codice M nelle colonne personalizzate Power Query |  PotenzaBI

Ora che abbiamo tutto ben preparato, basta trascinare e rilasciare i campi Nome , Data e URL . Il resto diventa una pulizia davvero semplice nelle opzioni di formato.

Codice M nelle colonne personalizzate Power Query |  PotenzaBI


Tabella di Power Query: come unire dinamicamente le colonne
Come unire le query in LuckyTemplates
Estrarre i valori dai record e dagli elenchi in Power Query

Conclusione

Spero di averti entusiasmato all'idea di aggiungere il codice M al tuo repertorio. Ti ho mostrato come impostare un modello concettuale e implementare l'approccio Learn by Google. Ti ho guidato attraverso i passaggi per incorporare il codice M in una colonna personalizzata e visualizzare i risultati utilizzando Queryon Timeline.

Spero che tu l'abbia trovato utile. Guarda il video completo qui sotto per maggiori dettagli sul tutorial e dai un'occhiata ai link qui sotto per altri contenuti correlati.

Ti auguro il meglio!


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

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 blog tratterà anche come importare oggetti da R a LuckyTemplates.

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.

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.

Introduzione al filtraggio del contesto in LuckyTemplates

Introduzione al filtraggio del contesto in LuckyTemplates

In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.

Idee di materializzazione per cache di dati in DAX Studio

Idee di materializzazione per cache di dati in DAX Studio

Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.

Reporting aziendale tramite LuckyTemplates

Reporting aziendale tramite LuckyTemplates

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

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cos'è il gateway LuckyTemplates? Tutto quello che devi sapere