Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Questa risposta è stata tradotta automaticamente. Pertanto, potrebbero esserci errori grammaticali o espressioni insolite.
Ciao @Stefano Ascareggi,
Benvenuti nel forum di domande e risposte di Microsoft.
Grazie per aver fornito informazioni dettagliate sulla Vostra richiesta di elaborazione dati. In base alle Vostre esigenze, Vi proponiamo una soluzione che utilizza Power Query in Excel con le seguenti istruzioni dettagliate:
ISTRUZIONI PER L'IMPLEMENTAZIONE IN POWER QUERY
FASE 1: PREPARAZIONE DEI DATI
- Assicurarsi che il file Excel contenga 2 fogli:
- Foglio "Dati": Contiene i dati originali (pagina 1 del file PDF)
- Foglio "Riferimenti": Contiene la tabella di riferimento tra i moduli (pagina 2 del file PDF)
- Formattare i dati come tabella (Table) selezionando l'intervallo di dati e premendo Ctrl + T
FASE 2: CARICAMENTO DEI DATI IN POWER QUERY
- Aprire la scheda Dati → selezionare Recupera e trasforma dati → Da tabella/intervallo
- Ripetere l'operazione per entrambi i fogli Dati e Riferimenti
FASE 3: CREAZIONE DELLA FUNZIONE RICORSIVA IN POWER QUERY
- In Power Query Editor, selezionare Nuova origine → Altre origini → Query vuota
- Denominare la query "fxGetAllModules"
- Nella finestra della formula, inserire il seguente codice M:
let
Origine = Excel.CurrentWorkbook(),
TabellaRiferimenti = Origine{[Name="Riferimenti"]}[Content],
TabellaDati = Origine{[Name="Dati"]}[Content],
// Recupera i dati diretti del modulo
DatiDiretti = Table.SelectRows(TabellaDati, each [Modulo] = ModuloIniziale),
// Trova i moduli figli
ModuliFigli = Table.SelectRows(TabellaRiferimenti, each [ModuloPadre] = ModuloIniziale)[ModuloFiglio],
// Chiamata ricorsiva per ogni modulo figlio
DatiRicorsivi = List.Combine(
List.Transform(
ModuliFigli,
each fxGetAllModules(_)
)
),
// Combina i dati
DatiCombinati = Table.Combine({DatiDiretti, DatiRicorsivi})
in
FASE 4: CREAZIONE OUTPUT 1 (DATI COMPLETI)
- Creare una nuova query: Nuova origine → Altre origini → Query vuota
- Denominare "Output1_DatiCompleti"
- Inserire il codice:
let
Origine = Excel.CurrentWorkbook(),
TabellaDati = Origine{[Name="Dati"]}[Content],
ModuliUnici = List.Distinct(TabellaDati[Modulo]),
DatiEspansi = List.Combine(
List.Transform(
ModuliUnici,
each fxGetAllModules(_)
)
),
Risultato = Table.FromList(DatiEspansi, Splitter.SplitByNothing(), {"TuttiDati"})
in
Risultato
FASE 5: CREAZIONE OUTPUT 2 (RIMUOVI DUPLICATI)
- Fare clic destro su "Output1_DatiCompleti" → Riferimento
- Rinominare "Output2_SenzaDuplicati"
- Eseguire:
- Selezionare tutte le colonne → Rimuovi duplicati
- Aggiungere una colonna "Note" con la formula:
FASE 6: COMPLETAMENTO
- Selezionare Chiudi e carica per tutte e 3 le query
- I dati verranno esportati in nuovi fogli
Spero che queste informazioni siano utili. Segui questi passaggi e fammi sapere se funzionano per te. In caso contrario, possiamo collaborare per risolvere il problema.
Grazie per la tua pazienza e comprensione. Se hai domande o hai bisogno di ulteriore assistenza, sentiti libero di condividerle nei commenti a questo post così posso continuare a supportarti.
Se la risposta è utile, fai clic su "Accetta risposta" e gentilmente votala positivamente. Se hai ulteriori domande su questa risposta, fai clic su "Commenta".
Nota: Segui i passaggi nella nostra documentazione per abilitare le notifiche e-mail se desideri ricevere la notifica e-mail relativa a questa discussione.