Risolto Power Query e accodamento con file con posizione colonne differenti

Roberto1982

Utente junior
Original poster
26 Ottobre 2022
22
0
1
Excel 365
Buongiorno a tutti, sto imparando ad usare power query e sto guardando vari tutorial su youtube ma sono arrivato ad un punto in cui non riesco a fare quello che mi serve.

Ho 4 file diversi scaricati dal gestionale della mia azienda che sono rispettivamente l'elenco di tutte le linee ADSL, VDSL, HDSL e EFM attive. Ho importato i file tramite la funzione "Da cartella". Questi file presentano varie colonne con varie intestazioni e a me serve combinare tutti e 4 i file prendendo solo il campo "Codice ordine ISP" e il campo "VP/VLAN". Inoltre voglio cancellare tutte le altre colonne in quanto sono dati non necessari. Il problema è che la posizione delle 2 colonne che mi servono sono in posizioni diverse nel file quindi quando importo i file dalla cartella e li combino, i dati vengono sfalsati.
Ho anche il problema che le intestazioni dei 3 file oltre a quello di esempio hanno la riga di intestazione come riga dei dati.

Qualcuno mi può dare 2 dritte per favore?

Grazie mille
 

Terio

Excel/Vba Expert
Supermoderatore
6 Gennaio 2021
27.933
6.123
2.345
55
Arce
2016, 2019, 365
Qualcuno mi può dare 2 dritte per favore?
Certo, ma allega i quattro file depurati dai dati sensibili e con solo una manciata di righe per ognuno.
Astrattamente, dopo aver importato i file cancella le colonne inutili normalizzando la struttura e combinali con quelle che rimangono.

Ciao.
P.S.
Ho spostato la discussione nella sezione corretta
 

Roberto1982

Utente junior
Original poster
26 Ottobre 2022
22
0
1
Excel 365
Grazie della risposta. Allego i 3 file (me ne fa caricare solo 3). Il mio problema è che se carico i 4 file singolarmente posso eliminare le colonne (lasciando solo le 2 che mi interessano) ma non riesco a combinarli e se li carico mi restituiscono 4 fogli diversi. Se invece importo da cartella non riesco ad eliminare le colonne.

Grazie
 

Allegati

  • HDSL_forum.xls
    17,5 KB · Visite: 4
  • VDSL_forum.xls
    18 KB · Visite: 3
  • ADSL_forum.xls
    17,5 KB · Visite: 4

Roberto1982

Utente junior
Original poster
26 Ottobre 2022
22
0
1
Excel 365
Ho dato una occhiata al video ma, se non ho capito male, qui spiega come accodare le colonne che sono nella stessa posizione ma hanno nomi diversi. Io invece ho bisogno di accordare le colonne che hanno lo stesso identico nome ma sono in posizioni diverse. Questo se apro i file da una cartella.

Questo tutorial è comunque utile se dovesse capitarmi il problema descritto.

Grazie mille
 

Sgrubak

Excel/VBA Expert
Expert
10 Marzo 2022
5.471
2.026
245
365 Beta x32
Io invece ho bisogno di accordare le colonne che hanno lo stesso identico nome ma sono in posizioni diverse.
Selezioni le due colonne che vuoi tenere e poi scegli Rimuovi altre colonne

Questo diventerà parte della trasformazione applicata ad ogni file e poi farà l'unione.
 

Terio

Excel/Vba Expert
Supermoderatore
6 Gennaio 2021
27.933
6.123
2.345
55
Arce
2016, 2019, 365
Io invece ho bisogno di accordare le colonne che hanno lo stesso identico nome ma sono in posizioni diverse

Perché la soluzione c'è, ma va letta per il tuo caso, ecco un modo con i tuoi esempi:
MQuery:
let
  Percorso = "qui ci va il tuo percorso della cartella che contiene i file",
  Origine = Folder.Files(Percorso),
  SoloXLSX = Table.SelectRows(Origine, each [Extension] = ".xlsx" and [Attributes]?[Hidden]? <> true),
  Contenuto = Table.AddColumn(SoloXLSX, "Headers", each Excel.Workbook([Content], true)),
  EspandiData = Table.ExpandTableColumn(Contenuto, "Headers", {"Data"}, {"Data"}),
  DrillDown = Table.Combine(EspandiData[Data]),
  Raffina = Table.SelectColumns(DrillDown, {"Cod. Ord. ISP", "VP/VLAN"})
in
  Raffina
e questo il risultato:
image.png


Ciao.
 

Roberto1982

Utente junior
Original poster
26 Ottobre 2022
22
0
1
Excel 365
Grazie delle risposte:

Selezioni le due colonne che vuoi tenere e poi scegli Rimuovi altre colonne

Questo diventerà parte della trasformazione applicata ad ogni file e poi farà l'unione.

Sono riuscito a farlo con l'importazione dei file singole e poi con accoda query ma non con l'importazione della cartella in quanto mi carica un file unico che è l'unione di tutti i file.

Perché la soluzione c'è, ma va letta per il tuo caso, ecco un modo con i tuoi esempi:
MQuery:

let
Percorso = "qui ci va il tuo percorso della cartella che contiene i file",
Origine = Folder.Files(Percorso),
SoloXLSX = Table.SelectRows(Origine, each [Extension] = ".xlsx" and [Attributes]?[Hidden]? <> true),
Contenuto = Table.AddColumn(SoloXLSX, "Headers", each Excel.Workbook([Content], true)),
EspandiData = Table.ExpandTableColumn(Contenuto, "Headers", {"Data"}, {"Data"}),
DrillDown = Table.Combine(EspandiData[Data]),
Raffina = Table.SelectColumns(DrillDown, {"Cod. Ord. ISP", "VP/VLAN"})
in
Raffina
e questo il risultato:
image.png



Ciao.

il mio livello attuale di power query è troppo basso per scrivere già il codice (anche se leggendolo ho capito più o meno cosa fa). Vado avanti a studiare e poi quando riesco faccio un test con il tuo suggerimento.


Il post l'ho metto risolto in quanto tramite l'accoda query sono riuscito a risolvere.

Grazie mille a tutti.
 

Terio

Excel/Vba Expert
Supermoderatore
6 Gennaio 2021
27.933
6.123
2.345
55
Arce
2016, 2019, 365
Il post l'ho metto risolto in quanto tramite l'accoda query sono riuscito a risolvere
La coppa sul mio suggerimento l'ho tolta se non è la soluzione che adotterai (anche se è risolve la tua richiesta).
Prenditi il tempo per testarla visto che funziona, e poi chiuderai la discussione,
ciao e grazie, intanto, dei riscontri.
 
  • Like
Reactions: Roberto1982

Roberto1982

Utente junior
Original poster
26 Ottobre 2022
22
0
1
Excel 365
Buongiorno, stavo riprendendo il discorso e ho testato il codice qui sopra. Guardando i vari passaggi non da errori ma l'ultimo passaggio (denominato Raffina) mi dice :"
Expression.Error: La colonna 'Cod. Ord. ISP' della tabella non è stata trovata.
Dettagli:
Cod. Ord. ISP".

Ho provato a controllare i passaggi precedenti. Nel passaggio prima vedo che la colonna me l'aveva nominata "Cod.# Ord.# ISP" impostando il tipo numero. Ho modificato il nome senza # e cambiando il tipo in testo prima del passaggio Raffina ma comunque mi da l'errore.

Cosa potrebbe essere?

Grazie mille
 

Terio

Excel/Vba Expert
Supermoderatore
6 Gennaio 2021
27.933
6.123
2.345
55
Arce
2016, 2019, 365
Expression.Error: La colonna 'Cod. Ord. ISP' della tabella non è stata trovata.
Esaustivo, ovvio che c'è stata una leggera modifica, visto che non ho problemi nell'eseguire la query.
Cosa potrebbe essere?
Risolvi drasticamente: cancella l'ultimo passaggio per poi farglielo ricreare. Si tratta semplicemente di selezionare le due colonne che vuoi mantenere, per poi rimuovere tutte le altre colonne.

Ciao.
 

Roberto1982

Utente junior
Original poster
26 Ottobre 2022
22
0
1
Excel 365
Ho fatto ancora una verifica. Effettivamente c'erano dei "." in più nel nome. Ho fatto copia incolla del nome della tabella ed ora funziona correttamente.

Ora modificherò la query fatta sui singoli file e utilizzo questa così è più pulita.

Grazie mille per l'aiuto.