Pagina 1 di 1

Applicare passaggi ad una serie di tabelle prima di Combine

Inviato: mar 23 mag 2023, 19:56
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

Applicare passaggi ad una serie di tabelle prima di Combine

Inviato: mar 23 mag 2023, 20:32
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

Applicare passaggi ad una serie di tabelle prima di Combine

Inviato: mar 23 mag 2023, 21:28
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"