Power Automate si applica a ogni azione nei flussi di lavoro
Scopri l
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.
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 .
In alternativa, nella scheda Trasforma , seleziona Unisci colonne . E apparirà questa finestra di dialogo, che ti permette di selezionare il Separatore.
Nella finestra a comparsa, scegli Tab e puoi inserire un nuovo nome di colonna. In questo caso, l'ho chiamato Descrizione.
Nella barra della formula, vediamo il codice M creato da questa fase di trasformazione.
Se la barra della formula non è visibile sullo schermo, vai alla scheda Visualizza e attivala.
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.
E infine, passa il nuovo nome della colonna come testo in modo che possiamo aggiustarlo.
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 .
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 .
In questa finestra a comparsa, fare clic su OK.
Quindi, nella scheda Aggiungi colonna , selezionerò Format , quindi Trim .
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 .
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 .
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 .
Quindi la prossima volta che i dati arrivano e quel numero di colonne è cambiato, questo gruppo lo raccoglierà automaticamente.
Rinominiamo questa query, la chiamerò gruppi di colonne.
Assicuriamoci che il suo caricamento sia stato disabilitato perché questa è solo una query di supporto.
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 .
Quindi, se applichiamo quel filtro sulla descrizione all'interno della colonna 1, otteniamo le colonne che soddisfano tali criteri.
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 .
E ora otteniamo una lista. Quindi diamo a questa query un nome proprio ( ListDescr ) e controlliamo se è disabilitato dal caricamento.
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 .
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 .
Nella finestra pop-up, sceglierò Tab come separatore e lo chiamerò Description2.
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 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
Scopri l
Tecniche di modellazione dei dati per organizzare meglio le misure DAX per un flusso di lavoro più efficiente.
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
Acquisisci familiarità con i connettori Power Automate per la manipolazione di numeri, testo e date/ore.
Ora, è molto facile studiare il budget rispetto all
Imparerai come salvare e caricare oggetti da un file .rds in R. Questo articolo tratta anche come importare oggetti da R a LuckyTemplates.
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
In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.