Applicare passaggi ad una serie di tabelle prima di Combine

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

Moderatore: Utilizzo_prof_Excel

Rispondi

H725
Messaggi: 23 | Topic creati
Iscritto il: gio 4 mag 2023, 21:14

Applicare passaggi ad una serie di tabelle prima di Combine

Messaggio da H725 »

Un saluto a tutto il Forum.
Ho importato da file PDF un database contenente varie tabelle. Sfortunatamente non sono tutte uguali in quante alcune contengono campi null, quindi bisogna Trasporre la tabella, filtrare i Null, traspostare nuovamente la tabella e alzare di livello le intestazioni. Questi passaggi vanno applicati prima di Combinare le varie tabelle altrimenti le varie colonne risulterebbero sfalsate.
Sono riuscito ad applicare il passaggio di eliminare le righe inserendo una nuova colonna con:

Codice: Seleziona tutto

= Table.AddColumn(RimosseAltreColonne, "Custom", each Table.Skip([Data],1))
esiste la possibilità di applicare questi passaggi prima di Text.Combine:

Codice: Seleziona tutto

    #"Trasposta colonna" = Table.Transpose(Custom),
    #"Filtrate righe" = Table.SelectRows(#"Trasposta colonna", each ([Column1] <> null)),
    #"Trasposta colonna1" = Table.Transpose(#"Filtrate righe"),
    #"Intestazioni alzate di livello" = Table.PromoteHeaders(#"Trasposta colonna1", [PromoteAllScalars=true]),
allego immagine
Immagine


Avatar utente

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

Applicare passaggi ad una serie di tabelle prima di Combine

Messaggio da Andrea90 »

H725,

Puoi creare una funzione custom da applicare a ciascuna riga che esegua le trasformazioni richieste… in questo modo avrai le tue tabelle trasformate prima di accodarle.

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

Autore del topic
H725
Messaggi: 23 | Topic creati
Iscritto il: gio 4 mag 2023, 21:14

Applicare passaggi ad una serie di tabelle prima di Combine

Messaggio da H725 »

Grazie mille, ho risolto così:

Codice: Seleziona tutto

// Fnc
(Source)=>
let
    //Origine = Table_all,
    //Data = Origine{0}[Data],
    #"Filtrate righe" = Table.SelectRows(Source, each ([Column1] <> null)),
    TraspostaColonna_1 = Table.Transpose(#"Filtrate righe"),
    FiltrateRighe = Table.SelectRows(TraspostaColonna_1, each ([Column1] <> null)),
    TraspostaColonna_2 = Table.Transpose(FiltrateRighe),
    IntestazioniAlzateLivello = Table.PromoteHeaders(TraspostaColonna_2, [PromoteAllScalars=true])
in
    #"IntestazioniAlzateLivello"

// Table_all
let
    Origine = Pdf.Tables(File.Contents("C:\Users\PC\Downloads\Banca-Dati-2023.pdf"), [Implementation="1.3"]),
    FiltraTable = Table.SelectRows(Origine, each Text.StartsWith([Id], "Table")),
    #"Filtrate righe" = Table.SelectRows(FiltraTable, each ([Id] <> "Table016" and [Id] <> "Table017" and [Id] <> "Table018" and [Id] <> "Table019" and [Id] <> "Table020" and [Id] <> "Table021")),
    #"Aggiunta colonna personalizzata" = Table.AddColumn(#"Filtrate righe", "Personalizzato", each Fnc([Data])),
    #"Rimosse altre colonne" = Table.SelectColumns(#"Aggiunta colonna personalizzata",{"Personalizzato"}),
    #"Tabella Personalizzato espansa" = Table.ExpandTableColumn(#"Rimosse altre colonne", "Personalizzato", {"N.", "Domanda", "Risposta Esatta", "Risposta 2", "Risposta 3", "Risposta 4"}, {"N.", "Domanda", "Risposta Esatta", "Risposta 2", "Risposta 3", "Risposta 4"})
in
    #"Tabella Personalizzato espansa"
Rispondi