Funzioni di query personalizzate di LuckyTemplates

Funzioni di query personalizzate di LuckyTemplates

Per l'esercitazione di oggi, creeremo una funzione di query personalizzata di LuckyTemplates che gestirà un formato comune di dati in pila difficile da gestire. Questa tecnica è facilmente riutilizzabile su più report e più tabelle. Puoi guardare il video completo di questo tutorial in fondo a questo blog.

Questa è una continuazione del tutorial che ho fatto di recente in cui abbiamo affrontato un formato comune di dati in pila difficile da gestire e utilizzato Modulo, Pivot e alcune funzioni di pulizia con Power Query per trasformare quei dati in un formato organizzato e funzionale.

Funzioni di query personalizzate di LuckyTemplates

È molto probabile che dovrai ripetere questo processo. Se questo tipo di formato è il risultato di un copia e incolla, probabilmente accadrà di nuovo. Quindi, in questo caso, probabilmente vorrai creare una funzione personalizzata che sarà riutilizzabile su più report e più tabelle, indipendentemente da come sono nominati e da cos'altro c'è in quelle tabelle.

Sommario

Come creare ed eseguire il debug delle funzioni di query personalizzate di LuckyTemplates

Passiamo a Power Query su questo. Se andiamo alla nostra tabella dei dati, nell'Editor avanzato, abbiamo il codice M per come siamo finiti per passare dai dati dello stack al formato desiderato.

Funzioni di query personalizzate di LuckyTemplates

Se vogliamo riutilizzarlo, facciamo semplicemente clic con il pulsante destro del mouse su Dati e diciamo Crea funzione .

Funzioni di query personalizzate di LuckyTemplates

Dice che non farà riferimento a nessun parametro, ma va bene creare una funzione senza parametri. Risponderemo, Sì, perché aggiungeremo i parametri man mano che andiamo nell'Editor avanzato. Chiameremo questa funzione, Unstack – 3 Elements , solo perché abbiamo le tre righe nel formato raw. Se avessimo un formato a due righe, probabilmente ne creeremmo uno separato composto da due o quattro elementi.

Funzioni di query personalizzate di LuckyTemplates

Quindi ora abbiamo questo Invoke, non abbiamo parametri e andiamo all'editor avanzato e iniziamo a lavorare su questo.

Funzioni di query personalizzate di LuckyTemplates

Primo, non abbiamo bisogno di questa Fonte. Useremo i parametri della funzione per definire la nostra fonte.

Funzioni di query personalizzate di LuckyTemplates

Vogliamo definire il parametro che entrerà. Lo facciamo con una parentesi aperta e poi un nome di parametro. Chiamiamo questo, Stack , che sarà quella colonna di dati che sono i dati dello stack non formattati che provengono dall'incollaggio degli indirizzi email.

Vogliamo che questo entri come un elenco e vogliamo che questo risulti in una tabella perché mentre lo scorporiamo da quella singola colonna a più colonne, passa da un elenco a una tabella. E ora, dobbiamo convertire l'elenco in entrata in una tabella in modo da poter aggiungere il nostro indice, avviare il nostro Modulo unpivot e fare tutto ciò che dobbiamo fare per riformattarlo.

Funzioni di query personalizzate di LuckyTemplates

Lo chiameremo ConvertStack e utilizzerà una funzione chiamata Table.FromList . Come molte delle funzioni M, fa esattamente quello che dice. Ci vuole solo un elenco. In questo caso, l'elenco sarà il nostro elenco Stack. E poi, dobbiamo sostituire Source qui con il nostro ConvertStack. Sembra abbastanza buono! Non abbiamo errori di sintassi, quindi premiamo Fatto.

Ora ci sta dando quello che volevamo, ovvero la possibilità di scegliere una colonna.

Funzioni di query personalizzate di LuckyTemplates

Quindi, sceglieremo TestData, ovvero i dati formattati in modo errato. Sceglieremo la colonna Valore, quindi faremo clic su OK. Successivamente, facciamo clic su Richiama.

Funzioni di query personalizzate di LuckyTemplates

Tuttavia, otteniamo questo errore. È davvero difficile individuare quale sia questo errore. Uno dei problemi con le funzioni personalizzate è che non interrompono i passaggi applicati, ottieni solo un passaggio per l'intera funzione personalizzata. Ma c'è un modo per aggirare questo problema nel debugging che ti mostrerò. Sarà molto più facile capire cosa sta succedendo qui.

Funzioni di query personalizzate di LuckyTemplates

Invece di eseguirlo per il momento come funzione, lo eseguiremo come query. Inizieremo manualmente quella chiamata Stack. Dobbiamo definire cos'è Stack perché non lo stiamo disegnando attraverso l'interazione di sceglierlo in Invoke. Quindi, abbiamo Stack uguale a TestData e la colonna Value di TestData.

Funzioni di query personalizzate di LuckyTemplates

Quello che fa è suddividerlo ora nei passaggi applicati. Questo ci aiuterà a capire perché non funziona. Nota una cosa interessante quando inseriamo Stack. Inizialmente, inserisce TestData[Value], ma quando lo convertiamo in una tabella, invece di Value è l'intestazione di colonna, l'intestazione di colonna è ora Column1.

Funzioni di query personalizzate di LuckyTemplates

Ricorda il messaggio di errore, era che non riusciva a trovare la colonna Valore. Il motivo per cui non è stato possibile trovare la colonna Value è che la funzione Table.FromList la rinomina in Column1.

Se scendiamo nei passaggi applicati, puoi vedere che è nel passaggio Personalizzato aggiunto dove otteniamo l'errore. Qui è dove non è stato trovato il valore del record.

Funzioni di query personalizzate di LuckyTemplates

Quindi, se andiamo nell'Editor avanzato, troviamo quel campo Personalizzato e possiamo vedere che si trova nel Text.Remove dove stiamo eliminando quei caratteri spazzatura di cui non avevamo bisogno, ma a cui si riferisce ancora il campo Valore. Lo cambieremo in Column1. Allo stesso modo, nel campo Colonne rimosse, fa riferimento a Valore, quindi lo cambieremo anche in Colonna1.

Funzioni di query personalizzate di LuckyTemplates

E quando arriviamo alla fine dei Passi Applicati, produce il risultato finale perfetto.

Funzioni di query personalizzate di LuckyTemplates

Ora che sappiamo che sta funzionando bene, abbiamo solo un'altra cosa da fare. Ricorda che per eseguire il debug, abbiamo trasformato la funzione personalizzata in una query. E così, ora dobbiamo prendere quella query e trasformarla di nuovo in una funzione.

Funzioni di query personalizzate di LuckyTemplates


Creazione di una funzione di pulizia del testo personalizzata in Power Query
Codice M in colonne personalizzate Power Query | Query e operatori della funzione LuckyTemplates
nell'editor di query

Conclusione

In questo tutorial, abbiamo creato questa funzione personalizzata, ne abbiamo eseguito il debug, l'abbiamo testata e funziona alla grande. E così ora, ogni volta che abbiamo uno stack di tre elementi, possiamo semplicemente selezionare quella tabella, scegliere quella colonna all'interno della tabella ed eseguire quella funzione personalizzata. Quindi, applica il Modulo, l'unpivot e ripulisci.

Questo dovrebbe darti degli ottimi strumenti in termini di creazione di funzioni personalizzate. Inoltre, ricorda quel trucco sul debug trasformandolo di nuovo in una query da una funzione e quindi ripristinandolo dopo il debug. È uno strumento davvero prezioso che semplifica notevolmente il debug delle funzioni personalizzate.

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.