Riorganizzazione di colonne in Power Query L’argomento è risolto

Non è propriamente un programma di BI, ma nelle sue versioni più recenti anche Excel può fare grandi cose!

Moderatore: Utilizzo_prof_Excel

Rispondi
Avatar utente

Enrico Galli
Messaggi: 890 | Topic creati
Iscritto il: dom 28 giu 2020, 19:03
Luogo: San Giovanni in Persiceto (BO)
Ringraziato: 325 volte
Contatta:

Riorganizzazione di colonne in Power Query

Messaggio da Enrico Galli »

Ciao a tutti! Oggi pongo io un quesito :)

Estraendo i dati da un manifesto elettorale, e dopo qualche pulizia, mi si presentano così in Power Query
Immagine

Praticamente i dati sono così disposti:
- i candidati di ciascuna lista sono nella stessa colonna
- le informazioni su ogni candidato (Nome e cognome, data e luogo di nascita) sono suddivise su due righe

Quello a cui mi servirebbe arrivare è una struttura classica con 4 colonne:
1) Nome della lista
2) Nome e cognome del candidato
3) Luogo di nascita
4) Data di nascita

Ho provato a fare qualche esperimento con unpivot, indici e moduli, ma non sono arrivato a nulla e non mi vengono buone idee (sarò un po' arrugginito! :lol: )
@Andrea90 o chiunque altro, help! Avete qualche idea? :wave:


Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione

Gennaro_64
Messaggi: 107 | Topic creati
Iscritto il: dom 11 apr 2021, 12:47
Ringraziato: 5 volte

Riorganizzazione di colonne in Power Query

Messaggio da Gennaro_64 »

Buon giorno Enrico Galli ,
Credo di essere la persona meno adatta a suggerire una soluzione data la mia "inesperienza", ma ci provo.
Credo sia un tema che è stato già affrontato e risolto anche se con metodi diversi sia da te che da Andrea90
in questo topic
viewtopic.php?p=2568&sid=df87f8e65d0080 ... f25d#p2568
Io separerei le liste in altrettanti fogli di lavoro mi adoprerei per filtrare le righe alternate delle varie tabelle-liste.
Spero che vada bene come risposta ... :)
Ciao
Avatar utente

Andrea90
Messaggi: 2193 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 666 volte
Contatta:

Riorganizzazione di colonne in Power Query

Messaggio da Andrea90 »

Ciao Enrico,

Ti giro al volo un file di prova (penso possa essere ripulito e ottimizzato), ho applicato la seguente logica considerando 3 colonne (e vedrai che ho impostato tale numero manualmente), ma con qualche modifica si può rendere il tutto dinamico (e questo non sarà certo un problema per te).

L’importante è capire se la logica che ho messo su possa risultare utile alla tua base dati reale.

Edit: Non sono arrivato allo step finale, ovvero di avere i dati disposti in 3 colonne, ma quello è semplice una volta che si hanno le coppie di righe disposte una a fianco dell’altra :D

Andrea

Codice: Seleziona tutto

 let
    Origine = Excel.CurrentWorkbook(){[Name="Tabella1"]}[Content],
    #"Modificato tipo" = Table.TransformColumnTypes(Origine,{{"Col1", type text}, {"Col2", type text}, {"Col3", type text}}),
    Personalizzato1 = Table.ToRecords(#"Modificato tipo"),
    #"Conversione in tabella" = Table.FromList(Personalizzato1, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Aggiunta colonna personalizzata" = Table.AddColumn(#"Conversione in tabella", "Personalizzato", each Record.ToList([Column1])),
    #"Rimosse colonne" = Table.RemoveColumns(#"Aggiunta colonna personalizzata",{"Column1"}),
    #"Tabella Personalizzato espansa" = Table.ExpandListColumn(#"Rimosse colonne", "Personalizzato"),
    #"Aggiunta colonna indice" = Table.AddIndexColumn(#"Tabella Personalizzato espansa", "Indice", 0, 1, Int64.Type),
    #"Inserita divisione intera" = Table.AddColumn(#"Aggiunta colonna indice", "Divisione intera", each Number.IntegerDivide([Indice], 3), Int64.Type),
    #"Inserita operazione modulo" = Table.AddColumn(#"Inserita divisione intera", "Modulo", each Number.Mod([Indice], 3), type number),
    #"Rimosse colonne1" = Table.RemoveColumns(#"Inserita operazione modulo",{"Divisione intera"}),
    #"Ordinate righe" = Table.Sort(#"Rimosse colonne1",{{"Modulo", Order.Ascending}, {"Indice", Order.Ascending}}),
    #"Rimosse colonne2" = Table.RemoveColumns(#"Ordinate righe",{"Indice", "Modulo"}),
    #"Aggiunta colonna indice1" = Table.AddIndexColumn(#"Rimosse colonne2", "Indice", 0, 1, Int64.Type),
    #"Modulo calcolato" = Table.TransformColumns(#"Aggiunta colonna indice1", {{"Indice", each Number.Mod(_, 2), type number}}),
    #"Aggiunta colonna indice2" = Table.AddIndexColumn(#"Modulo calcolato", "Indice.1", 0, 1, Int64.Type),
    #"Divisione intera colonna" = Table.TransformColumns(#"Aggiunta colonna indice2", {{"Indice.1", each Number.IntegerDivide(_, 2), Int64.Type}}),
    #"Colonna trasformata tramite Pivot" = Table.Pivot(Table.TransformColumnTypes(#"Divisione intera colonna", {{"Indice", type text}}, "it-IT"), List.Distinct(Table.TransformColumnTypes(#"Divisione intera colonna", {{"Indice", type text}}, "it-IT")[Indice]), "Indice", "Personalizzato"),
    #"Filtrate righe" = Table.SelectRows(#"Colonna trasformata tramite Pivot", each ([0] <> null))
in
    #"Filtrate righe"
Allegati
TestUnpivot.xlsx
(18.14 KiB) Scaricato 20 volte
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link
Avatar utente

Autore del topic
Enrico Galli
Messaggi: 890 | Topic creati
Iscritto il: dom 28 giu 2020, 19:03
Luogo: San Giovanni in Persiceto (BO)
Ringraziato: 325 volte
Contatta:

Riorganizzazione di colonne in Power Query

Messaggio da Enrico Galli »

Grazie mille a entrambi :) Andrea90 grande, veramente geniale l'idea del Table.ToRecords, non ci avevo mai pensato :clap:
Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione
Rispondi