Errore importazione file CSV 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

by sal
Messaggi: 41 | Topic creati
Iscritto il: gio 23 lug 2020, 7:49
Ringraziato: 1 volta

Errore importazione file CSV

Messaggio da by sal »

Ciao a tutti, ho creato una query per l'importazione di un file csv che scelgo tramite finestra di dialogo, l'importazione è sempre corretta è funzionante.

però può succedere che chi mi invia il file CSV lo può modificare, nel senso che aumenta o diminuisce le colonne.

logicamente la Query non funziona più perche non trova le colonne oppure trova colonne in più che spostano le colonne precedenti, quindi non mi carica nessuna dato.

come posso fare per intercettare questo tipo di errore.

non conosco a priori se il file csv è stato modificato, in modo che possa lanciare Query differenti.

Ciao By sal (8-D


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:

Errore importazione file CSV

Messaggio da Enrico Galli »

Ciao, dipende tutto dalle trasformazioni che vengono effettuate sul CSV importato. Magari possono essere rese "flessibili", ma non è detto. Non essendoci modo di sapere se, come e quante colonne vengono aggiunte/tolte/modificate, comunque, diventa tutto molto difficile. Considera ad esempio che il numero di colonne del CSV è scritto in modo statico nel comando di importazione stesso...
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
Avatar utente

Autore del topic
by sal
Messaggi: 41 | Topic creati
Iscritto il: gio 23 lug 2020, 7:49
Ringraziato: 1 volta

Errore importazione file CSV

Messaggio da by sal »

Ciao Enrico, l'avevo pensato, guarda questo esempio, in giallo a dx righe aggiunte, o mancano a sx, in verde dovrebbero essere spostate

Immagine

è un confronto delle intestazioni colonne

mi sa che dovrò importare il file CSV normalmente fare prima un controllo delle modifiche ed al limite intervenire.

intervenire perche non tutte le intestazioni vengono prese in esame ma solo alcune colonne, e dovrò far creare un elenco delle sole colonne interessate.

una domanda però una query che imposta solamente le colonne interessate e tutte le altre non importa il numero in più o meno, verranno eliminate
in totale le colonne da importare sono circa 15, e sono tutte presenti nel quadro a dx

che dici si può fare?

Ciao By Sal (8-D
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:

Errore importazione file CSV

Messaggio da Enrico Galli »

Si può fare impostando un numero di colonne esageratamente alto nel passaggio di importazione e poi applicando il passaggio "scegli colonne", che di fatto elimina tutte le altre rispetto a quelle da te elencate. Queste ultime però devono essere stabili nell'intestazione (ovvero deve essere scritta sempre allo stesso modo, maiuscole e minuscole comprese)
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
Avatar utente

Autore del topic
by sal
Messaggi: 41 | Topic creati
Iscritto il: gio 23 lug 2020, 7:49
Ringraziato: 1 volta

Errore importazione file CSV

Messaggio da by sal »

Ciao Enrico Grazie per dritta ora provo a farlo e vediamo cosa succede.

Ciao e grazie By Sal (8-D
Avatar utente

Autore del topic
by sal
Messaggi: 41 | Topic creati
Iscritto il: gio 23 lug 2020, 7:49
Ringraziato: 1 volta

Errore importazione file CSV

Messaggio da by sal »

Ciao Sono riuscito a fare quello che volevo, ma mi restano 2 ultimi problemi, il primo più importante, quando seleziono le colonne che devono rimanere, vorrei che le prendesse da un elenco che ho sul foglio Excel, perche potrei aggiungere altre oppure eliminarne qualcuna.

questo è il codice "M" generato

Codice: Seleziona tutto

let
    Origine = Csv.Document(File.Contents("C:\Users\Salvatore\Desktop\Utenti\MarcoIacono\Ebay Nuovo\eBay-OrdersReport-Jul-20-2021-23 07 30-0700-1217357369.csv"),[Delimiter=";", Columns=69, Encoding=1252, QuoteStyle=QuoteStyle.None]),
    #"Modificato tipo" = Table.TransformColumnTypes(Origine,{{"Column1", type text}, {"Column2", type text}, {"Column3", type text}, {"Column4", type text}, {"Column5", type text}, {"Column6", type text}, {"Column7", type text}, {"Column8", type text}, {"Column9", type text}, {"Column10", type text}, {"Column11", type text}, {"Column12", type text}, {"Column13", type text}, {"Column14", type text}, {"Column15", type text}, {"Column16", type text}, {"Column17", type text}, {"Column18", type text}, {"Column19", type text}, {"Column20", type text}, {"Column21", type text}, {"Column22", type text}, {"Column23", type text}, {"Column24", type text}, {"Column25", type text}, {"Column26", type text}, {"Column27", type text}, {"Column28", type text}, {"Column29", type text}, {"Column30", type text}, {"Column31", type text}, {"Column32", type text}, {"Column33", type text}, {"Column34", type text}, {"Column35", type text}, {"Column36", type text}, {"Column37", type text}, {"Column38", type text}, {"Column39", type text}, {"Column40", type text}, {"Column41", type text}, {"Column42", type text}, {"Column43", type text}, {"Column44", type text}, {"Column45", type text}, {"Column46", type text}, {"Column47", type text}, {"Column48", type text}, {"Column49", type text}, {"Column50", type text}, {"Column51", type text}, {"Column52", type text}, {"Column53", type text}, {"Column54", type text}, {"Column55", type text}, {"Column56", type text}, {"Column57", type text}, {"Column58", type text}, {"Column59", type text}, {"Column60", type text}, {"Column61", type text}, {"Column62", type text}, {"Column63", type text}, {"Column64", type text}, {"Column65", type text}, {"Column66", type text}, {"Column67", type text}, {"Column68", type text}, {"Column69", type text}}),
    #"Duplicata colonna" = Table.DuplicateColumn(#"Modificato tipo", "Column69", "Column69 - Copia"),
    #"Duplicata colonna1" = Table.DuplicateColumn(#"Duplicata colonna", "Column69 - Copia", "Column69 - Copia - Copia"),
    #"Duplicata colonna2" = Table.DuplicateColumn(#"Duplicata colonna1", "Column69 - Copia - Copia", "Column69 - Copia - Copia - Copia"),
    #"Duplicata colonna3" = Table.DuplicateColumn(#"Duplicata colonna2", "Column69 - Copia - Copia - Copia", "Column69 - Copia - Copia - Copia - Copia"),
    #"Duplicata colonna4" = Table.DuplicateColumn(#"Duplicata colonna3", "Column69 - Copia - Copia - Copia - Copia", "Column69 - Copia - Copia - Copia - Copia - Copia"),
    #"Duplicata colonna5" = Table.DuplicateColumn(#"Duplicata colonna4", "Column69 - Copia - Copia - Copia - Copia - Copia", "Column69 - Copia - Copia - Copia - Copia - Copia - Copia"),
    #"Duplicata colonna6" = Table.DuplicateColumn(#"Duplicata colonna5", "Column69 - Copia - Copia - Copia - Copia - Copia - Copia", "Column69 - Copia - Copia - Copia - Copia - Copia - Copia - Copia"),
    #"Duplicata colonna7" = Table.DuplicateColumn(#"Duplicata colonna6", "Column69 - Copia - Copia - Copia - Copia - Copia - Copia - Copia", "Column69 - Copia - Copia - Copia - Copia - Copia - Copia - Copia - Copia"),
    #"Duplicata colonna8" = Table.DuplicateColumn(#"Duplicata colonna7", "Column69 - Copia - Copia - Copia - Copia - Copia - Copia - Copia - Copia", "Column69 - Copia - Copia - Copia - Copia - Copia - Copia - Copia - Copia - Copia"),
    #"Duplicata colonna9" = Table.DuplicateColumn(#"Duplicata colonna8", "Column69 - Copia - Copia - Copia - Copia - Copia - Copia - Copia - Copia - Copia", "Column69 - Copia - Copia - Copia - Copia - Copia - Copia - Copia - Copia - Cop.1"),
    #"Duplicata colonna10" = Table.DuplicateColumn(#"Duplicata colonna9", "Column69 - Copia - Copia - Copia - Copia - Copia - Copia - Copia - Copia - Cop.1", "Column69 - Copia - Copia - Copia - Copia - Copia - Copia - Copia - Copia - Cop.2"),
    #"Rimosse prime righe" = Table.Skip(#"Duplicata colonna10",1),
    #"Intestazioni alzate di livello" = Table.PromoteHeaders(#"Rimosse prime righe", [PromoteAllScalars=true]),
    #"Modificato tipo1" = Table.TransformColumnTypes(#"Intestazioni alzate di livello",{{"ID dettagli vendita", type text}, {"Numero ordine", type text}, {"Nome utente dell'acquirente", type text}, {"Nome dell'acquirente", type text}, {"Email dell'acquirente", type text}, {"Nota dell'acquirente", type text}, {"Indirizzo dell'acquirente 1", type text}, {"Indirizzo dell'acquirente 2", type text}, {"Città dell'acquirente", type text}, {"Provincia dell'acquirente", type text}, {"CAP dell'acquirente", Int64.Type}, {"Paese dell'acquirente", type text}, {"Nome dell'identificatore fiscale dell'acquirente", type text}, {"Valore dell'identificatore fiscale dell'acquirente", type text}, {"Nome destinatario", type text}, {"Telefono destinatario", type text}, {"Indirizzo di spedizione 1", type text}, {"Indirizzo di spedizione 2", type text}, {"Città di spedizione", type text}, {"Provincia di spedizione", type text}, {"CAP di spedizione", Int64.Type}, {"Paese di spedizione", type text}, {"Numero oggetto", Int64.Type}, {"Titolo", type text}, {"Etichetta personalizzata", type text}, {"Venduto tramite Inserzioni sponsorizzate", type text}, {"Quantità ", Int64.Type}, {"Prezzo finale", type text}, {"Spedizione e imballaggio", type text}, {"Luogo in cui si trova l'oggetto", type text}, {"Codice postale del luogo in cui si trova l'oggetto", type text}, {"Paese del luogo in cui si trova l'oggetto", type text}, {"Aliquota IVA inclusa", Int64.Type}, {"Aliquota delle imposte riscosse e versate da eBay", type text}, {"Tipo di imposte riscosse e versate da eBay", type text}, {"Nome di riferimento eBay", type text}, {"Valore di riferimento eBay", type text}, {"Stato delle imposte", type text}, {"Imposta riscossa dal venditore", type text}, {"Imposta riscossa da eBay", type text}, {"Tariffa per il riciclaggio di oggetti elettronici", type text}, {"Tariffa per il riciclaggio di materassi", type text}, {"Tariffa per il riciclaggio di batterie", type text}, {"Tassa di smaltimento per grandi elettrodomestici", type text}, {"Tariffa per il riciclaggio di pneumatici", type text}, {"Tariffa aggiuntiva", type text}, {"Costo totale", type text}, {"Il totale include l'imposta e le tariffe riscosse da eBay", type text}, {"Metodo di pagamento", type text}, {"Data vendita", type date}, {"Data del pagamento", type date}, {"Spedizione entro il", type date}, {"Data di consegna prevista minima", type text}, {"Data di consegna prevista massima", type text}, {"Data della spedizione", type text}, {"Feedback lasciato", type text}, {"Feedback ricevuto", type text}, {"Nota sull'oggetto", type text}, {"ID transazione PayPal", type text}, {"Servizio di spedizione", type text}, {"Codice della spedizione", type text}, {"ID transazione", Int64.Type}, {"Dettagli variante", type text}, {"Programma di spedizione internazionale", type text}, {"ID di riferimento spedizione internazionale", type text}, {"Click & Collect", type text}, {"Numero di riferimento Click & Collect", type text}, {"eBay Plus", type text}, {"Programma di evasione ordini eBay", type text}, {"Programma di evasione ordini eBay_1", type text}, {"Programma di evasione ordini eBay_2", type text}, {"Programma di evasione ordini eBay_3", type text}, {"Programma di evasione ordini eBay_4", type text}, {"Programma di evasione ordini eBay_5", type text}, {"Programma di evasione ordini eBay_6", type text}, {"Programma di evasione ordini eBay_7", type text}, {"Programma di evasione ordini eBay_8", type text}, {"Programma di evasione ordini eBay_9", type text}, {"Programma di evasione ordini eBay_10", type text}, {"Programma di evasione ordini eBay_11", type text}}),
    #"Rimosse prime righe1" = Table.Skip(#"Modificato tipo1",1),
    #"Rimosse altre colonne" = Table.SelectColumns(#"Rimosse prime righe1",{"ID dettagli vendita", "Numero ordine", "Indirizzo dell'acquirente 1", "Indirizzo dell'acquirente 2", "CAP dell'acquirente", "Nome destinatario", "Telefono destinatario", "Indirizzo di spedizione 1", "Città di spedizione", "Titolo", "Etichetta personalizzata", "Quantità ", "Data vendita", "Spedizione entro il", "Nota sull'oggetto"}),
    #"Ultime righe rimosse" = Table.RemoveLastN(#"Rimosse altre colonne",3),
    #"Modificato tipo2" = Table.TransformColumnTypes(#"Ultime righe rimosse",{{"CAP dell'acquirente", type text}}),
    #"Modificato tipo3" = Table.TransformColumnTypes(#"Modificato tipo2",{{"CAP dell'acquirente", Int64.Type}})
in
    #"Modificato tipo3"
credo che dovrei intervenire sulla riga "#Rimosse altre colonne" riga 19, che riporta le colonne che devono restare, posso indicare l'elenco sul foglio con un array oppure un Nome del range delle colonne che devono rimanere.

l'altro ma è relativo non ho trovato come fare mettere gli zero davanti per il codice del "CAP", relativo perche lo modifico sul foglio Excel ma vorrei sapere come farlo in PWQ se è possibile non ho trovato il metodo per cambiare il formato.

Un saluto e Grazie By Sal (8-D
Avatar utente

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

Errore importazione file CSV

Messaggio da Andrea90 »

Ciao by sal,

per il primo punto utilizza Table.SelectColumns, il primo argomento è la tabella da cui selezionare le colonne, il secondo può essere una lista contenente l elenco dei nomi di colonne che ti servono. Sarà questo elenco ad essere dinamico poiché te lo creerai da una tabella di appoggio presente nel file excel.

Per il secondo punto utilizza Text.PadStart.

Andrea
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
by sal
Messaggi: 41 | Topic creati
Iscritto il: gio 23 lug 2020, 7:49
Ringraziato: 1 volta

Errore importazione file CSV

Messaggio da by sal »

Grazie Andrea, ora vedo se riesco. ma lo inserisco al posto della riga 19?

Ciao By Sal (8-D
Avatar utente

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

Errore importazione file CSV

Messaggio da Andrea90 »

Il tuo passaggio rimosse altre colonne ha già la struttura che ti serve, usa la formula che ti ho indicato.

Solo che il secondo argomento è una lista di campi statica, tu devi creare un passaggio prima di questo che estragga una lista da una tua tabella di appoggio, ed utilizzare questa lista al posto di quella scritta in maniera statica.

Andrea
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
Rispondi