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 :
1671790808259.png


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


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é"
 

Discussions similaires

Réponses
14
Affichages
354
Réponses
10
Affichages
424

Statistiques des forums

Discussions
314 489
Messages
2 110 136
Membres
110 684
dernier inscrit
kihel