Pagina 1 di 2

Import da cartella va in errore per nomi Fogli diversi

Inviato: gio 24 nov 2022, 15:31
da Marco
Buongiorno a tutti, sto cercando di acquisire dei dati da una cartella dove ho salvato dei file il cui contenuto all'interno è uguale, ossia stessa struttura in termini di colonne e di righe, all'interno dell'unico foglio di lavoro.
Ogni file rappresenta una rilevazione dati effettuata con frequenza settimanale e li riceviamo via mail da fonti esterne.

Il problema che si pone è che i nomi del foglio di lavoro sono diversi ogni settimana e la funzione va in errore.

Quando la funzione Trasforma file rileva il nome del foglio, rileva quello del primo file e va in errore con tutti gli altri. Nell'esempio qui sotto il foglio del primo file è stato denominato "Rilevazione Grezzi 18-2022", nel file successivo è ""Rilevazione Grezzi 19-2022" ecc...

Codice: Seleziona tutto

let
    Origine = (Parametro1) => let
        Origine = Excel.Workbook(Parametro1, null, true),
        #"Rilevazione Grezzi 18-2022_Sheet" = Origine{[Item="Rilevazione Grezzi 18-2022",Kind="Sheet"]}[Data]
    in
        #"Rilevazione Grezzi 18-2022_Sheet"
in
    Origine
Analogamente in Trasforma file di esempio il codice è il seguente.

Codice: Seleziona tutto

let
    Origine = Excel.Workbook(Parametro1, null, true),
    #"Rilevazione Grezzi 18-2022_Sheet" = Origine{[Item="Rilevazione Grezzi 18-2022",Kind="Sheet"]}[Data]
in
    #"Rilevazione Grezzi 18-2022_Sheet"
Avete un'idea per evitare che ogni volta debba uniformare il nome del foglio manualmente prima di salvarlo nella cartella?
Grazie mille!

Import da cartella va in errore per nomi Fogli diversi

Inviato: gio 24 nov 2022, 15:47
da Andrea90
Marco,

Sicuro di aver copiato bene la formula?

Comunque, invece di scrivere:

Codice: Seleziona tutto

let
    Origine = (Parametro1) => let
        Origine = Excel.Workbook(Parametro1, null, true),
        #"Rilevazione Grezzi 18-2022_Sheet" = Origine{[Item="Rilevazione Grezzi 18-2022",Kind="Sheet"]}[Data]
    in
            #"Rilevazione Grezzi 18-2022_Sheet"
Prova a scrivere

Codice: Seleziona tutto

let
    Origine = (Parametro1) => let
        Origine = Excel.Workbook(Parametro1, null, true),
        #"Rilevazione Grezzi 18-2022_Sheet" = Origine{[Item=Origine[Item]{0},Kind="Sheet"]}[Data]
    in
        #"Rilevazione Grezzi 18-2022_Sheet"
Quello che cambia è il passaggio che identifica il foglio

Andrea

Import da cartella va in errore per nomi Fogli diversi

Inviato: gio 24 nov 2022, 16:44
da Marco
IN-CRE-DI-BI-LE... :o :o :o :o
Grazie mille!!!!!! :clap: :clap: :clap:

Riesco solo ad intuire cosa significa "Item=Origine[Item]{0}"...
In realtà sarei curioso di capire almeno come mai, pur avendo risolto il problema, se apporto delle modifiche alla query Trasforma file ora questa non "agisce" più sulla query finale e la posso anche eliminare...

Import da cartella va in errore per nomi Fogli diversi

Inviato: gio 24 nov 2022, 16:52
da Andrea90
Marco,

Avrai commesso qualche errore, poiché la modifica che ti ho indicato non rende nulla la funzione trasforma che excel crea in automatico quando fa un caricamento da cartella.

La modifica che ti ho indicato va fatta sulla query che ha il simbolo di “tabella” per intenderci, non quella che ha il simbolo “fx”

Andrea

Import da cartella va in errore per nomi Fogli diversi

Inviato: gio 24 nov 2022, 17:40
da Marco
Ora non funziona più: mi dice che manca un token "in", ma non so cosa mettere.
Mi chiedevi se il codice che ti avevo copiato era giusto e te lo confermo: sia il primo (fx) sia il secondo (Trasforma file di esempio).

Import da cartella va in errore per nomi Fogli diversi

Inviato: gio 24 nov 2022, 17:56
da Andrea90
Marco,

La mia domanda era retorica, quel codice che hai passato non può essere corretto. Infatti l’errore che ti da è giustificato dal fatto che hai 2 “in” nel tuo codice. Non che sia sbagliato avere più “in”, ma non devono essere scritti in quel modo.

Andrea

Import da cartella va in errore per nomi Fogli diversi

Inviato: ven 25 nov 2022, 9:00
da Marco
Provo a condividere il file.
Il codice della funzione e della query è quello che power query genera in automatico quando si combinano i file, oppure sto prendendo un abbaglio...

Import da cartella va in errore per nomi Fogli diversi

Inviato: ven 25 nov 2022, 9:06
da Andrea90
Marco,

Il codice della funzione presente nel file che hai allegato infatti contiene un solo costrutto let…in

Andrea

Import da cartella va in errore per nomi Fogli diversi

Inviato: ven 25 nov 2022, 9:35
da Marco
Ho riprovato, ora funziona!
Grazie.

Import da cartella va in errore per nomi Fogli diversi

Inviato: ven 25 nov 2022, 18:51
da Marco
Perdonami...
Mi sono accorto che c'è un problema: ora la query non va più in errore, ma in corrispondenza dei dati dei file, che prima andavano in errore per il nome dei fogli di lavoro diversi, ora ha inserito valore null...