Power Query Transformation tableau PowerQuery

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Labud

XLDnaute Nouveau
Bonjour
J'ai un tableau sous une forme et je souhaite l'exploiter dans PowerQuery mais je n'arrive pas à le transformer dans la forme voulue.
L'idée est de transformer un tableau de départ de 2 colonnes en dépivotant certaines lignes et pas d'autres .Je joins mon fichier exemple qui sera surement plus explicite qu'un texte pas très clair 🙂 C'est un petit fichier juste pour l'exemple, si on me donne la clé pour ce tableau je pourrai ml'ensortir pour un cas plus grand.
Merci par avance pour l'aide !
Bertrand
 

Pièces jointes

Solution
Bonjour à tous !
Une autre approche, à partir d'une source nommée tSource :
PowerQuery:
let
    Source = Excel.CurrentWorkbook(){[Name="tSource"]}[Content],
    GroupBy = Table.Group(
        Source,
        {"Column1"},
        {{"tbl", each Table.FromValue([Column1]{0},[DefaultColumnName ="Column2"]) &Table.RemoveColumns(Table.Transpose(_),"Column1")}},
        GroupKind.Local,
        (x,y)=> if Text.StartsWith(y[Column1],"Tableau_") then 1 else 0),
    Combine = Table.Combine(GroupBy[tbl])
in
    Combine
Bonjour

Un tableau structuré doit respecter certaines règles, notamment :
  • pas de ligne vide et donc encore moins des colonnes entières
  • une et une seule ligne de titre avec en dessous des données de même nature
  • pas de lignes de totaux autres que celle prévue dans les tableaux structurés
Tes lignes en marron devraient donc faire l'objet de 2 colonnes (une pour la description, l'autre pour la surface) et non entrecouper le tableau
Les titres en lignes 3 et 4 devrait être dans une même cellule (éventuellement avec un retour à la ligne) et servir d'en-tête au tableau

Sinon il faut utiliser une plage classique et non un tableau structuré.

Il n'y a qu'un tableau structuré nommé Tableau1 dans ton classeur

Tableau2 est ton exemple de source et Tableau3 celui du résultat voulu et le rapport avec Tableau1 n'est pas clair.
 
Bonsoir Labud, le forum

Une proposition certainement perfectible apéro oblige...


PowerQuery:
let
    Source = Excel.CurrentWorkbook(){[Name="Data"]}[Content],
    #"Added Index" = Table.AddIndexColumn(Source, "Index", 1, 1),
    #"Added Custom" = Table.AddColumn(#"Added Index", "Custom", each if [Column2] = null then [Index] else null),
    #"Filled Up" = Table.FillUp(#"Added Custom",{"Custom"}),
    #"Added Custom2" = Table.AddColumn(#"Filled Up", "Custom.1", each if [Column2] = null and [Index] = [Custom] then [Custom] +1 else [Custom]),
    #"Grouped Rows" = Table.Combine(List.Transform(Table.Group(#"Added Custom2", {"Custom.1"}, {{"Count", each  Table.Transpose(Table.SelectColumns(_, {"Column1", "Column2"}))
}})[Count], each Table.SelectRows(_, each [Column1] <> null)))
in
    #"Grouped Rows"

Bonne soirée
 
Bonjour à tous !
Une autre approche, à partir d'une source nommée tSource :
PowerQuery:
let
    Source = Excel.CurrentWorkbook(){[Name="tSource"]}[Content],
    GroupBy = Table.Group(
        Source,
        {"Column1"},
        {{"tbl", each Table.FromValue([Column1]{0},[DefaultColumnName ="Column2"]) &Table.RemoveColumns(Table.Transpose(_),"Column1")}},
        GroupKind.Local,
        (x,y)=> if Text.StartsWith(y[Column1],"Tableau_") then 1 else 0),
    Combine = Table.Combine(GroupBy[tbl])
in
    Combine
 
Notre forum d’entraide est 100 % gratuit et le restera.
Aucune formation payante, aucun fichier à acheter, rien à vendre. Mais comme tout site, nous devons couvrir nos frais pour continuer à vous accompagner.
Soutenez-nous en souscrivant à un compte membre : c’est rapide, vous choisissez simplement votre niveau de soutien et le tour est joué.

Je soutiens la communauté et j’accède à mon compte membre

Discussions similaires

Réponses
7
Affichages
645
Réponses
2
Affichages
439
D
  • Question Question
Power Query powerquery
Réponses
4
Affichages
356
Retour