[Power Query] Combiner des colonnes

Bonjour,

Je suis en panne d'inspiration...

Je dois récupérer des fichiers dans un répertoire (ça, c'est OK), et en sortir un tableau unique, sachant que chaque fichier a sa propre structure...

Je sais dans quelle(s) colonnes récupérer les données qui m'intéressent (1 colonne par onglet), certains fichiers comprennent 1, 2 ou 3 onglets.. (j'ai la liste des colonnes par onglet)

Je n'arrive pas à combiner les tableaux, sachant que je dois récupérer les 2 premières colonnes + la colonne qui m'intéresse (mais donc différente selon le nombre d'onglets et le fichier)

J'ai mis un petit fichier exemple, avec 2 onglets, et un final, qui "éclaircit" (???) mon besoin.

Merci pour toute aide

Bon appétit

Re-,

Petite précision

Lorsque je dis que je connais les numéros de colonne à récupérer, cela veut dire que j'arrive à extraire un tableau de ce style :

NameColumn à conserver
Feuil1Column3
Feuil2Column5

Salut,

Je débute encore sur PQ donc il y a probablement moyen de faire plus simple, mais je pense que si tu fais un tableau contenant ta liste de noms de tableaux, et la colonne à extraire. Ensuite il suffit de le parcourir pour extraire les 3 colonnes en question, et d'exporter le résultat.

Je pensais à la fonction ci-dessous, et la query suivante

// fonction
let
    GetTable = (tblName as text, tblCol as number) => (
        let
            fullTbl = Excel.CurrentWorkbook(){[Name=tblName]}[Content],
            myCols = Table.FromColumns(
                {
                    Table.Column(fullTbl, Table.ColumnNames(fullTbl){0}),
                    Table.Column(fullTbl, Table.ColumnNames(fullTbl){1}),
                    Table.Column(fullTbl, Table.ColumnNames(fullTbl){tblCol - 1})
                },
                {
                    "Datas1",
                    "Datas2",
                    "Datas3"
                })
        in
            myCols
    )

in
    GetTable

// query
let
    src = Excel.CurrentWorkbook(){[Name="tblRefs"]}[Content],
    tblRefs = Table.TransformColumnTypes(src,{{"Tableaux", type text}, {"Colonne 3", Int64.Type}}),
    tblX = Table.AddColumn(tblRefs,"t", each GetTable([Tableaux], [Colonne 3])),
    tblF = Table.ExpandTableColumn(Table.RemoveColumns(tblX,{"Tableaux", "Colonne 3"}), "t", {"Datas1", "Datas2", "Datas3"}, {"t.Datas1", "t.Datas2", "t.Datas3"})
in
    tblF

Fichier avec le tblRefs (par contre je ne sais pas pourquoi je n'arrive pas à reload ma query dans le workbook...)

Hello voisin ,

Merci pour ton aide.

Je savais que je ne savais pas posé correctement une question, je viens de le confirmer.

Mon exemple est très mauvais, les différents fichiers que je dois importer ne comportent aucun Tableau Structuré - Ceci est complètement indépendant de ma volonté...

Je vais néanmoins essayer de bidouiller ce code

Merci encore - je tiens au courant des investigations

Ah désolé, la solution se base sur des fichiers déjà importés dans le classeur en effet.

Après, j'imagine que ce doit être adaptable, ce qui compte c'est d'arriver à récupérer une liste des tableaux avec les numéros de colonne associés, puis de la parcourir.

Si les experts passent par là… Moi j'ai atteint mes limites

Re-,

Effectivement, j'importe 10 fichiers (8 avec 1 seul onglet, 1 avec 2 onglets et un autre avec 3 onglets)

Aucun TS dans les fichiers, la colonne qui m'intéresse n'importe où dans l'onglet (titre dans une ligne et/ou colonne différentes, titres écrits majuscule, minuscule, abrévié, NomPropre...)

Que du bonheur... :)

Comme dirait une personne que je connais (et qui fréquente également ce forum), le slogan "informatique" est appliqué dans toute sa splendeur

Merde in, Merde out

Je suis cependant arrivé à une solution, avec import des fichiers, expand, unpivot, recherche de ce "titre" dans la colonne Attribut, fusion de la table dépivotée avec les numéros de colonne trouvés...

Bref, tortueux, mais "à priori" efficace (reste à comptabiliser le nombre de lignes obtenu (plus de 7500) // nombre de lignes "sélectionnables" dans les fichiers)

Merci en tout cas pour ton aide, pour un "débutant", plutôt ++

Complexe… Merci pour ton retour, on est à bonne école ici 😉

Kenavo

Bonjour à tous !

J'avais commencé à investiguer sur la base de..... tableaux structurés.....

Mauvaise option visiblement

Changement de stratégie...

La requête produite intègre des classeurs externes, avec ou sans tableau structuré (tests effectués !)

Exemple de classeur sans tableau structuré utilisé pour le test :

Hello,

Merci aussi pour ton aide (c'est ma boîte de doliprane qui vient de perdre quelques kilos....)

Je vais étudier tout ça, je pense avoir quelques adaptations à faire, mais en tout cas, ça répond parfaitement à ma demande (comment dire? "un peu tout mal pas bien claire"?)

Merci encore (on se voit en Champion's League au prochain tour?)

Bonjour à tous de nouveau !

.......ma demande (comment dire? "un peu tout mal pas bien claire"?)

C'est un excellent résumé.....

(on se voit en Champion's League au prochain tour?)

Non non.... ! Ma préférence va à une équipe française bien moins coriace...

Et puis avec la confrontation de samedi cela risque de faire beaucoup....

Rechercher des sujets similaires à "power query combiner colonnes"