Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Power Query Dépivoter colonnes

Efgé

XLDnaute Barbatruc
Bonjour à toutes et tous.

Décidément, Power Query reste un peu magique pour moi

J'ai un problème pour dépivoter les colonnes deux par deux.
Je m'explique j'ai ce tableau :


Je voudrais arriver à cela : regrouper les dates en une colonne avec les nombres liés.


En pièce jointe un fichier.
Je reste là pour répondre aux demandes d'éclaircissement.

Cordialement
 

Pièces jointes

  • Dépivoter.xlsx
    20 KB · Affichages: 4

Efgé

XLDnaute Barbatruc
Re
J'ai trouvé:
Sélection des premières colonnes / Dépivoter les autres colonnes
Création d'une colonne an ne prenant que le début des textes
Mise au format nombre de la colonne valeur
Pivoter la colonne texte
remettre au format date la colonne date.

A+

Cordialement
 

chris

XLDnaute Barbatruc
Bonjour

Ton exemple n'est pas cohérent : certaines dates sont vides et d'autres pas alors que la situation est la même pour ces lignes

De même des valeurs inexistantes dans la source apparaissent

Exemple A_2 : il n'y a qu'un date dans la source, une valeur<>0 et 3 valeurs=0
Mais ton résultat attendu donne 3 dates et 2 valeurs 1000

J'avais traité mais du coup comme rien ne matche...
 
Dernière édition:

Efgé

XLDnaute Barbatruc
Bonjour @chris
Merci de te pencher sur le sujet.

En effet mon exemple est mal fait, un peu trop rapide.
En fait il faut recopier Date_2 et nb_2 en dessous du tableau en recopiant les valeurs correspondantes précédentes.
Même chose avec date_3 et Nb_3 et Date_4 et NB_4

Je joint un exemple plus propre.

Cordialement
 

Pièces jointes

  • Dépivoter_2.xlsx
    19.8 KB · Affichages: 6

Hasco

XLDnaute Barbatruc
Repose en paix
Re bonjour,

Dans le fichier joint une méthode (Tableau1(2)) alliant celle de @chris (pivotement) et la mienne jouant sur les listes.
Elle présente plus d'étapes parce que je n'ai pas voulu trop "condenser" les actions.

Cordialement
 

Pièces jointes

  • Dépivoter_2.xlsx
    35.3 KB · Affichages: 4

Hasco

XLDnaute Barbatruc
Repose en paix
Re

Et voici une troisième méthode à partir du pivotement et d'une partition de la table
VB:
// Tableau1 (3)
let
    Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
    // Liste des noms des 5 premières colonnes de la table pour utilisations ultérieures
    ListeColonnes = List.FirstN(Table.ColumnNames(Source),5),
    // Pivoter la table sur les autre colonnes
    Pivotement = Table.UnpivotOtherColumns(Source, ListeColonnes, "Attribut", "Valeur"),
    // Scinder la table en deux en fonction de la valeur de "Attribut"
    Partition = Table.Partition(Pivotement,"Attribut",2,each Number.From(Text.StartsWith(_,"NB_"))),
    // Reconstruction d'une table à partir des colonnes des deux tables de la partitions
    Association = Table.FromColumns(
    Table.ToColumns(Table.SelectColumns(Partition{0}, ListeColonnes & {"Valeur"} ))
    & {Partition{1}[Valeur]},ListeColonnes & {"Date","Nombre"}
),
    #"Type modifié" = Table.TransformColumnTypes(Association,{{"Date", type date}, {"Nombre", type number}})
in
    #"Type modifié"
 

Efgé

XLDnaute Barbatruc
Bonjour @chris, Bonjour @Hasco, Bonjour @bhbh , le fil, le forum

Bonne année à toutes et tous.

Après une semaine de congés et une matinée d'adaptation de vos propositions, j'ai mis en place la version de @chris , plus simple à comprendre pour moi.

Encore merci de vous être penchés sur le sujet.

Cordialement
 

Discussions similaires

Réponses
14
Affichages
354
Réponses
10
Affichages
424
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…