Come espandere correttamente le tabelle nidificate in Power Query

Contenuti

Supponiamo di avere un file Excel con diverse tabelle intelligenti:

Come espandere correttamente le tabelle nidificate in Power Query

Se carichi queste tabelle in Power Query nel modo standard usando il comando Dati – Ottieni dati – Da file – Da libro (Dati — Ottieni dati — Da file — Da cartella di lavoro), quindi otteniamo qualcosa del genere:

Come espandere correttamente le tabelle nidificate in Power Query

L'immagine, credo, sia familiare a molti utenti di Power Query. Tabelle nidificate simili possono essere visualizzate dopo aver combinato le query (a la VLOOKUP), raggruppando (command Raggruppa per linguetta Trasformazione), importando tutti i file da una determinata cartella, ecc.

Il passaggio logico successivo in questa situazione è di solito espandere tutte le tabelle nidificate contemporaneamente, utilizzando il pulsante con le doppie frecce nell'intestazione della colonna Dati:

Come espandere correttamente le tabelle nidificate in Power Query

Di conseguenza, otteniamo un assieme di tutte le righe di tutte le tabelle in un unico insieme. Tutto è buono, semplice e chiaro. 

Ora immagina che sia stata aggiunta una nuova colonna (Sconto) nelle tabelle di origine e/o che una di quelle esistenti (Città) sia stata eliminata:

Come espandere correttamente le tabelle nidificate in Power Query

Quindi la nostra richiesta dopo l'aggiornamento restituirà un'immagine non così bella: lo sconto non è apparso e la colonna della città è diventata vuota, ma non è scomparsa:

Come espandere correttamente le tabelle nidificate in Power Query

Ed è facile capire perché: nella barra della formula puoi vedere chiaramente che i nomi delle colonne espanse sono codificati negli argomenti della funzione Table.ExpandTableColumn come elenchi tra parentesi graffe.

Come aggirare questo problema è facile. Innanzitutto, otteniamo i nomi delle colonne dall'intestazione di qualsiasi tabella (ad esempio, la prima) utilizzando la funzione Table.ColumnNames. Sembrerà:

Come espandere correttamente le tabelle nidificate in Power Query

Qui:

  • #"Altre colonne rimosse" – il nome del passaggio precedente, da cui prendiamo i dati
  • 0 {} – il numero della tabella da cui estraiamo l'intestazione (contando da zero, cioè 0 è la prima tabella)
  • [Dati] – il nome della colonna del passaggio precedente, dove si trovano le tabelle espanse

Resta da sostituire nella funzione la costruzione ottenuta nella barra della formula Table.ExpandTableColumn nella fase di espansione delle tabelle anziché degli elenchi codificati. Alla fine dovrebbe essere tutto così:

Come espandere correttamente le tabelle nidificate in Power Query

È tutto. E non ci saranno più problemi con l'espansione delle tabelle nidificate quando i dati di origine cambiano.

  • Creazione di tabelle multiformato da un foglio in Power Query
  • Crea tabelle con intestazioni diverse da più file Excel
  • Raccolta dei dati da tutti i fogli del libro in un'unica tabella

 

Lascia un Commento