Power Query Dépivoter colonnes dans PowerQuery

  • Initiateur de la discussion Initiateur de la discussion Labud
  • Date de début Date de début

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
Je bloque sur une requête dans PowerQuery (pour transfert dans PowerBI). C'est peut être tout bête mais je n'y arrive pas alors je vous soumets mon problème.
J'ai une colonne avec des ID unique et plusieurs autres colonnes que j'aurais souhaité mettre en dessous les unes des autres. Le dépivotement des colonnes n'est pas adapté à mon problème, ou alors je n'arrive pas l'utiliser.
J'ai mis en pièce jointe un fichier exemple avec 2 tableaux : le tableau initial selon la structure existante de mes données et le tableau final sur le résultat que je souhaite atteindre.
Mes données sont plus complexes et présentent plus de colonnes mais l'exemple simplifié devrait permettre de m'aider ensuite à transposer sur mes données.
Merci beaucoup pour l'aide.
Bertrand
 

Pièces jointes

Bonjour
Merci beaucoup pour vos réponses, c'est très bien elles répondent à mon problème.
J'ai bien compris la solution de merinos.
Merci Amilo pour tes 2 fichiers, je vais m'y pencher plus en détails, j'avoue ne pas connaitre l'étape 3 avec la création des listes.
Merci à tous pour vos contributions !
 
Bonjour,
Une alternative :
PowerQuery:
let
    Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
    UnPivot = Table.UnpivotOtherColumns(Source, {"ID"}, "Attribut", "Valeur"),
    Split = Table.SplitColumn(UnPivot, "Attribut", Splitter.SplitTextByCharacterTransition((c) => not List.Contains({"0".."9"}, c), {"0".."9"}), {"Attribut.1", "Attribut.2"}),
    Pivot = Table.Pivot(Split, List.Distinct(Split[Attribut.1]), "Attribut.1", "Valeur"),
    SupprCol = Table.RemoveColumns(Pivot,{"Attribut.2"})
in
    SupprCol
Bonne journée
 
Bonsoir à tous,

Du classique sans Power Query avec en A10, à tirer vers le bas :
Code:
=SI(MOD(LIGNES(A$10:A10)-1;2);A9;INDEX(A$3:A$5;ENT(LIGNES(A$10:A10)/2)+1))
et en B10, à tirer à droite et vers le bas :
Code:
=SI(MOD(LIGNES(B$10:B10)-1;2);INDEX(D$3:D$5;ENT(LIGNES(B$10:B10)/2));INDEX(B$3:B$5;ENT(LIGNES(B$10:B10)/2)+1))
Bonne nuit.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
673
Retour