[PowerQuery] - Espandere le colonne di una tabella dinamicamente

ibernet

Utente junior
31 Maggio 2019
41
24
8
O365
1
Espandere le colonne di una tabella dinamicamente
Utilizzare la funzione riportata qui sotto ed inclusa nel file in allegato.

Quindi se dovete caricare un tracciato in cui il nome delle colonne cambia ogni volta, "ad esempio perchè le colonne sono nominate con nome dataoggi, dataoggi+1 e così via" questa soluzione vi permette di gestire il file di input.

Io comunque consiglio di utilizzarlo come ultima spiaggia perchè in questi casi conviene sempre verticalizzare il dato alla fonte.
Ps. non è un mio script, l'avevo trovato in giro per la rete più di un anno fa, mi sembra giusto farlo presente.

Codice:
= (TableToExpand as table, optional ColumnNumber as number) =>
    let
     ActualColumnNumber = if (ColumnNumber=null) then 0 else ColumnNumber,
     ColumnName = Table.ColumnNames(TableToExpand){ActualColumnNumber},
     ColumnContents = Table.Column(TableToExpand, ColumnName),
     ColumnsToExpand = List.Distinct(List.Combine(List.Transform(ColumnContents, each if _ is table then Table.ColumnNames(_) else {}))),
     NewColumnNames = List.Transform(ColumnsToExpand, each ColumnName & "." & _),
     CanExpandCurrentColumn = List.Count(ColumnsToExpand)>0,
     ExpandedTable = if CanExpandCurrentColumn then Table.ExpandTableColumn(TableToExpand, ColumnName, ColumnsToExpand, NewColumnNames) else TableToExpand,
     NextColumnNumber = if CanExpandCurrentColumn then ActualColumnNumber else ActualColumnNumber+1,
     OutputTable = if NextColumnNumber>(Table.ColumnCount(ExpandedTable)-1) then ExpandedTable else ExpandAll(ExpandedTable, NextColumnNumber)
    in
     OutputTable
 

Allegati

  • Like
Reactions: ges

alfrimpa

VBA Expert
Supermoderatore
Expert
18 Dicembre 2015
17.225
690
113
65
Napoli
2013
281
ibernet @ibernet

Ti segnalo che il codice va inserito tra i TAG CODE; per come fare guarda gli avvisi dello staff (stavolta lo faccio io)

Edit: ho visto che li hai inseriti ora.
 

klingklang

Ciappinaro VBA_Expert
Expert
20 Ottobre 2017
3.681
551
113
42
San Giovanni in Persiceto (BO)
www.excelswissknife.com
2016, 365
242
ibernet @ibernet solo un consiglio: siccome qui siamo ancora tutti all'abc della suite Power, iniziare pubblicando degli script "ultima spiaggia" in linguaggio M rischia di confondere e anche "spaventare" gli utenti.

Siccome hai fatto un ottimo video tutorial che anche se non ho ancora visto immagino parta dalle basi, credo che anche qui sul forum sarebbe meglio partire per gradi, con degli esempi inizialmente semplici magari di utilizzo dell'interfaccia grafica, per poi addentrarsi nelle personalizzazioni in codice M che qui ancora nessuno conosce (almeno che io sappia).

Con questo non voglio "tarparti le ali", anzi sono contentissimo che ci sia un esperto che ci può insegnare delle tecniche avanzate che finora non ci sognavamo neppure: vorrei soltanto che il percorso di apprendimento di questi strumenti fosse graduale per tutti, in modo da coinvolgere e non allontanare i possibili utenti interessati Saluto_saluto
 
  • Like
Reactions: alfrimpa

ibernet

Utente junior
31 Maggio 2019
41
24
8
O365
1
ibernet @ibernet
Ti segnalo che il codice va inserito tra i TAG CODE; per come fare guarda gli avvisi dello staff (stavolta lo faccio io)

Edit: ho visto che li hai inseriti ora.
già.. l'avevo messo ma quando ho premuto invio non me l'aveva preso, forse ho fatto troppo veloce ^^
Ps se si può aggiungere in elenco il linguaggio M, lo taggo giusto prossima volta

solo un consiglio
Heila, si hai ragione, ne ho messi solo un paio di topic per ora perchè ce li avevo pronti nel mio portale posto sulla intranet aziendale, non ne ho altri quindi se aggiungo cose le scrivo col senno di poi. :ROFLMAO:
Penso cmq che eventualmente farò dei video e poi ve li pubblico, così tengo la linea guida di crescita graduale.

Confermo che il video corso parte dalle basi di PowerBI.


tarparti le ali
Nessun problema, apprezzo critiche e schiettezza sono le cose che fanno crescere ';)
Vi conosco ancora poco, portate pazienza, piano piano mi integro bene :)
 

dracoscrigno

CioccaPiatti & VBA Expert
Expert
1 Maggio 2016
3.682
122
63
office pro 2010
42
iniziare pubblicando degli script "ultima spiaggia" in linguaggio M rischia di confondere e anche "spaventare" gli utenti.
spaventare magari no ma bestemmiare anche si visto che il listato presentato è parziale ed il file allegato non contiene il listato proposto...

... giusto per cuirosità... ma quella roba_ccia li dove la scrivi che vedo una sintassi troppo diversa per darmi l' idea di essere accettata dall IDE che conosco su office 2010...
 

ibernet

Utente junior
31 Maggio 2019
41
24
8
O365
1
Suggerisco per chi non conosce questa parte di Excel di spararsi il video corso, così prima vi fate una bella overdue di tutto e da li riuscirete a capire praticamente tutti i topic futuri che verranno creati :)


Il corso è strutturato e parte dalle basi, le prime 2 lezioni son di teoria ma non saltatele ^^

Se non l'avete mai visto ne sentito e magari non avete nozioni di cubi di dati vi perderete sulla maggior parte delle argomentazioni.
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!