Come unire dinamicamente le colonne in una tabella di Power Query

Come unire dinamicamente le colonne in una tabella di Power Query

In questo tutorial, esamineremo un'interessante domanda sollevata nel su come unire dinamicamente un numero variabile di colonne in una tabella Power Query. Puoi guardare il video completo di questo tutorial in fondo a questo blog.

Questo scenario riguarda le esportazioni di dati non elaborati che causano la fuoriuscita dei dati in un numero imprecisato di colonne adiacenti. Quando guardi l'esempio, puoi vedere che la descrizione si è riversata nella colonna 4 e la descrizione 2 è stata divisa su due colonne adiacenti. Ma non sarà sempre così. Nel ciclo successivo, questo numero di colonne potrebbe cambiare.

Come unire dinamicamente le colonne in una tabella di Power Query

Prima di passare alla soluzione, esaminiamo il codice M generato da Power Query quando si uniscono le colonne.

Sommario

Codice M della tabella Power Query

Ci sono un paio di modi per unire le colonne. Uno è selezionare sia la colonna della descrizione che premere il tasto Maiusc o il tasto Ctrl, quindi selezionare anche la colonna 4. Quindi, fai clic con il pulsante destro del mouse e scegli Unisci colonne .

Come unire dinamicamente le colonne in una tabella di Power Query

In alternativa, nella scheda Trasforma , seleziona Unisci colonne . E apparirà questa finestra di dialogo, che ti permette di selezionare il Separatore.

Come unire dinamicamente le colonne in una tabella di Power Query

Nella finestra a comparsa, scegli Tab e puoi inserire un nuovo nome di colonna. In questo caso, l'ho chiamato Descrizione.

Come unire dinamicamente le colonne in una tabella di Power Query

Nella barra della formula, vediamo il codice M creato da questa fase di trasformazione.

Come unire dinamicamente le colonne in una tabella di Power Query

Se la barra della formula non è visibile sullo schermo, vai alla scheda Visualizza e attivala.

Come unire dinamicamente le colonne in una tabella di Power Query

Quindi la funzione utilizzata da Power Query per unire le colonne è Table.CombinedColumns . Il primo parametro che prende è una tabella. Quella tabella viene restituita dal passaggio precedente nel nostro codice, quindi nei passaggi applicati vedrai che si chiama Source .

Quindi, ha codificato i nomi delle colonne in un elenco. Qui puoi vedere gli inizializzatori dell'elenco e tra i valori nel testo, la descrizione del nome della colonna e la colonna del nome della colonna 4. Quindi, chiama un'altra funzione M per combinare i valori del testo in quelle colonne.

Come unire dinamicamente le colonne in una tabella di Power Query

E infine, passa il nuovo nome della colonna come testo in modo che possiamo aggiustarlo.

Come unire dinamicamente le colonne in una tabella di Power Query

Quindi, se vogliamo che questa funzione unisca dinamicamente un numero variabile di colonne, dovremo modificare il valore del secondo parametro che ora contiene un elenco di nomi di colonna codificati.

Unione di un numero variabile di colonne in una tabella Power Query

Torno alla mia query sui dati grezzi e, se diamo un'occhiata più da vicino ai nomi delle colonne, vediamo che ciascuna delle colonne di trasferimento è anonima. Non hanno nomi propri, ma iniziano tutti con la colonna di testo, seguita da un numero. Vediamo se possiamo usarlo. Innanzitutto, creerò un riferimento facendo clic con il pulsante destro del mouse qui e selezionando Riferimento .

Come unire dinamicamente le colonne in una tabella di Power Query

E per ottenere i nomi delle colonne all'interno della barra della formula, posso aggiungere Table.ColumnNames . Questa funzione restituisce un elenco con tutti i nomi delle colonne di quella tabella. Ritrasformiamolo in una tabella facendo clic su To Table .

Come unire dinamicamente le colonne in una tabella di Power Query

In questa finestra a comparsa, fare clic su OK.

Come unire dinamicamente le colonne in una tabella di Power Query

Quindi, nella scheda Aggiungi colonna , selezionerò Format , quindi Trim .

Come unire dinamicamente le colonne in una tabella di Power Query

Ora, questa non è una trasformazione che voglio eseguire, ma genera la maggior parte del codice M per me. Tutto quello che devo fare è sostituire quella funzione trim con la mia logica .

Come unire dinamicamente le colonne in una tabella di Power Query

Quindi all'interno della barra della formula, invece di Text.Trim , possiamo dire if Text.StartsWith , quindi puntarlo alla nostra Colonna 1 e lo copierò immediatamente. Vuole quel testo che stiamo cercando, quindi sarà Colonna. Quindi, se inizia con una colonna di testo, allora vogliamo "null" - per tutto il resto, vogliamo tutto ciò che è nella colonna 1. Possiamo anche rinominare quella colonna, quindi all'interno della barra della formula, invece di Trim, chiamiamola GroupColumn .

Come unire dinamicamente le colonne in una tabella di Power Query

Ora, tutto ciò che dobbiamo fare è riempirli a questi valori. Quindi farò clic con il pulsante destro del mouse sulla mia intestazione, selezionerò Fill e Down .

Come unire dinamicamente le colonne in una tabella di Power Query

Quindi la prossima volta che i dati arrivano e quel numero di colonne è cambiato, questo gruppo lo raccoglierà automaticamente.

Come unire dinamicamente le colonne in una tabella di Power Query

Rinominiamo questa query, la chiamerò gruppi di colonne.

Come unire dinamicamente le colonne in una tabella di Power Query

Assicuriamoci che il suo caricamento sia stato disabilitato perché questa è solo una query di supporto.

Come unire dinamicamente le colonne in una tabella di Power Query

Posso fare riferimento a questa query di supporto e la rinominerò in seguito. Lasciamolo per ora. Quindi, se ricordi, abbiamo iniziato unendo due colonne e questo ha creato un elenco codificato con i nomi delle colonne , ma ora possiamo filtrare su Description nel nostro GroupColumn .

Come unire dinamicamente le colonne in una tabella di Power Query

Quindi, se applichiamo quel filtro sulla descrizione all'interno della colonna 1, otteniamo le colonne che soddisfano tali criteri.

Come unire dinamicamente le colonne in una tabella di Power Query

Tuttavia, questa è una tabella e non un elenco. Dobbiamo estrarre tutto ciò che rimane in quella prima colonna perché dobbiamo includere quelle colonne nella nostra operazione di unione. Quindi, per farlo, possiamo fare clic con il pulsante destro del mouse sull'intestazione della Colonna 1 e selezionare Drill Down .

Come unire dinamicamente le colonne in una tabella di Power Query

E ora otteniamo una lista. Quindi diamo a questa query un nome proprio ( ListDescr ) e controlliamo se è disabilitato dal caricamento.

Come unire dinamicamente le colonne in una tabella di Power Query

Ora possiamo tornare alla nostra query Risultato e sostituire il secondo argomento qui con il nostro elenco dinamico. Quindi qui, possiamo fare riferimento al nostro ListDescr .

Come unire dinamicamente le colonne in una tabella di Power Query

Ripetiamolo anche per la Descrizione 2. Vado alla mia query ColumnGroups. Creerò un altro riferimento e selezionerò le colonne di cui ho bisogno. Poi filtrerò la Descrizione 2, che restituirà queste tre colonne. Farò clic con il pulsante destro del mouse sulla mia intestazione e selezionerò Drill Down e rinominerò anche questa query ( ListDescr2 ).

Torno quindi alla mia query Risultato, seleziono la colonna Descrizione2 e premo Maiusc o Ctrl per selezionare anche la colonna successiva (colonna2). Farò clic con il pulsante destro del mouse sull'intestazione e sceglierò Unisci colonne .

Come unire dinamicamente le colonne in una tabella di Power Query

Nella finestra pop-up, sceglierò Tab come separatore e lo chiamerò Description2.

Come unire dinamicamente le colonne in una tabella di Power Query

Cambierò solo il nome della colonna qui sulla barra della formula. Cambierò anche quell'elenco codificato dall'elenco che abbiamo appena creato. E ora, come puoi vedere, anche questo ha ripreso la colonna 8 che avevamo precedentemente escluso.

Come unire dinamicamente le colonne in una tabella di Power Query


Come unire le query in LuckyTemplates
Parametri delle query di LuckyTemplates: ottimizzazione delle tabelle
Ordinamento delle colonne della tabella per data in LuckyTemplates

Conclusione

In questo blog, ti ho mostrato come utilizzare i codici M in Power Query per unire dinamicamente le colonne. Non è difficile finché hai familiarità con il funzionamento di Power Query e quali codici M utilizzare.

Spero ti sia piaciuto questo. Si prega di controllare i link sottostanti per ulteriori contenuti correlati.

Ti auguro il meglio!

Melissa


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.