[Power Query/Bi] Organisation des données via PQ pour mise en forme graphiq

Bonjour,

D'avance merci à ceux qui prendrons le temps de lire ce long poste que j'ai tenté de détailler au maximum.

Je souhaiterais obtenir des graphiques sur Power Bi qui ressemblerai à cela (Un code couleur est la pour faire le lien entre les mêmes éléments de différentes photos.)

photo3

Graphiques que j'aimerais reproduire ICI:

photo2

Voici à l'heure actuel mon tableau de données que j'ai réorganisé.

photo1

J'aurais donc filtré la pièce choisie via l'outil Segment directement intégré à Power Bi

Ensuite j'aimerai un graphique par critère en colonne 1

Les valeurs affichés suivant l'ordre des colonnes jaunes de gauches à droites

Et pour finir afficher une ligne droite constante qui afficherais la limite en colonne verte


Je n'ai aucune idée de comment organiser mon tableau pour obtenir un semblant de résultat.. Je ne suis même pas capable d'afficher un premier aperçus de graphique. Je pense que tout est question de mise en forme des données avec PQ

Je vous remercie d'avance pour toutes aides que vous pourrez me fournir sur ce problème.


Slts,

Gabin

Je vous transmet le projet Bi, les données sont DATA (2) que j'essaye de mettre en forme dans le dernier onglet. Le filtre se trouve en onglet 1

Bonjour gabin,

Je ne comprends pas, l'axe X c'est une unité de temps ?

Bonjour Valentin,

Merci pour cette réponse rapide je ne m'y attendais point !

L'axe X est chronologique suivant les Essais. Essais qui sont nommées de différentes manières selon les documents

Il n'y à pas vraiment de notions de temps ici c'est plutôt juste que l'essai 1 viens avant le 2 etc.

L'ordre chronologique correspondra toujours à l'odre des colonnes de gauche à droite, c'est la seule manière de déterminer l'ordre

Pour moi il faut que tu pivotes l'ensemble de tes colonnes jaunes et que tu crée une ligne pour chacune des colonnes Jaunes en fonction des autres. Mais je me trompe peut etre.

Tu pourrais extraire le fichier excel pour que je puisse faire des tests ? je n'ai pas power Bi desktop. J'utilise seulement la version web.

Pour moi il faut que tu pivotes l'ensemble de tes colonnes jaunes et que tu crée une ligne pour chacune des colonnes Jaunes en fonction des autres

Je pense que c'est ce qu'il faut faire oui.

Je vais envoyer les données Excel mais elles sont que partiellement mises en formes, une partie de power query est fait directement sur Bi.

Mon tableau source est dans le premier onglet, je le transforme dans l'onglet Injection Overview

donc en gros Injection Overview = DATA (2)

14piece-1.xlsm (174.46 Ko)

Tu peux donc voir dans le première onglet en colonne F les valeurs de consignes, la "Limite" puis vers la droite les colonnes qui se créent à chaque nouvel essai.

Gabin,

Un debut mais je pense que tu vas devoir passer par 4 graphique différent

Pour moi faut passer par un index a créer . dit moi ce que tu en penses. Ca te parait possible de laisser l'index sur l'axe des x ?

Okay je viens de comprendre que F,S,T sont First second third

J'attends ton retour pour continuer ou non.

image
20aaa.xlsx (124.37 Ko)

Re,

Tout à fais j'avais l'intention d'avoir 4 graphs différents par critère c'est parfait.

Axe X si c'est juste 1,2,3,4 sous forme d'index c'est pas grave.

Dans mon exemple F S T c'est bien First second third mais ce ne sera pas toujours le CAS ! cela pourrais être renommé différemment Donc comme dir précédemment on ne peux utiliser que l'ordre des colonnes de gauche a droite pour savoir l'index.

Je ne comprend pas le tableau que tu joint au message ? Il ne présente pas les différents sur des lignes différentes ?

Il y a une requette en connexion seulement. Désolé j'ai oublié de préciser.

Dans la requette je me sers du sens des colonnes. J'ai garder le nom des tests mais si tu souhaites seulement avoir l'index, je te le laisse enlever l'étape de fusion des colonnes

J'ai trouvé ta requête. Je vais essayer d'adapter cela à mon projet et je te dit quoi.

Un grand merci Valentin je peux avancer

Ca marche, je pense que tu vas trouver la suite sans trop de difficultés,

Au cas ou j'ai quand même trouvé un truc qui doit pas être très loin de ce que tu recherche (les données sont factices mais tu peux voir les champs. J'ai essayé avec "Type extract" en petit multiple mais c'est pas possible d'adapter l'axe Y à chacun des graphiques. t'es obligé de passer par 4 graphiques :

Et n'oublie pas de trier l'axe X en fonction de l'index pour chacun des graphiques

image

Bon... Bah j'y arrive po :/

J'ai vraiment du mal avec PQ

photo4

Je suis actuellement dans la même configuration de base que dans ton exemple, on à les mêmes tableaux sous la même forme. La seule différence c'est que je transforme mes tableaux directement sur PQ Power Bi et toi tu as fait sur PQ Excel.

A gauche c'est mon cas, A droite ton exemple.

J'essaye de procéder par étape et de mettre en place la première étape et ça coince

photo5

Ce qui m'embête c'est que tu supprime des TCD alors qu'il n'y à pas d'étape où tu en crée ? je dois passer à coté de quelque chose désolé..

Merci bcp du temps que tu consacres au problème

Bonjour Gabin,

Je regarde cela en fin de matiné, pas trop le temps ce matin.

Gabin,

C'est juste une histoire de nom de colonne. Ma colonne s'appelle "Pièce" la tienne "Source.Name.1" soit tu modifie le nom de la colonne avant ou alors change ma requête avec ton nom de colonne

Bonjour Valentin dsl de la réponse tardive.

J'ai fais attention à bien renommer toutes les colonnes à l'exactitude et j'ai toujours la même erreur sur la colonne "Limit"

J'essaye de faire pleins de captures d'écran voir si tu trouves la coquille.

Merci

Bon, je ne sais pas si c'est moi ou le site mais je suis incapable de charger une photo sur le forum, (je suis dans le train sur ma 4G) Je t'envoie quelques captures ce soir.

photo6 photo7

Ca y est j'ai retrouvé une connexion WiFi !!

Bonne nuit,

Au plaisir de te lire.

Bonjour Gabin,

Il t'affiche quoi comme erreur ?

Je pense avoir trouvé, Le problème c'est pas que tu fais l'étape de unpivot dans source ?

Envoi ton code Power query si tu veux que je regarde en détails

Bonjour Valentin,

Merci pour cette réponse en ce Lundi matin ensoleillé.

Voici le message d'erreur:

image

L'erreur survient donc dès la première ligne de ton code. D'ailleurs, si j'inverse Type extract et Limit dans la ligne de code, le msg change et indique qu'il ne trouve pas la colonne "Type Extract" .

Si je clique sur l'étape "Colonnes renommées" Tout à l'air de fonctionner sur cette étape qui renvoi le même tableau que tu as utilisé en source dans Excel.

image

Voici le code:

let
    Source = Folder.Files("S:\METRO\Gabin\VBA ; Classeurs Excel ; Moulinettes\Visuel Indicateur suivi de projet\DATAS"),
    #"Fichiers masqués filtrés1" = Table.SelectRows(Source, each [Attributes]?[Hidden]? <> true),
    #"Appeler une fonction personnalisée1" = Table.AddColumn(#"Fichiers masqués filtrés1", "Transformer le fichier (2)", each #"Transformer le fichier (2)"([Content])),
    #"Colonnes renommées1" = Table.RenameColumns(#"Appeler une fonction personnalisée1", {"Name", "Source.Name"}),
    #"Autres colonnes supprimées1" = Table.SelectColumns(#"Colonnes renommées1", {"Source.Name", "Transformer le fichier (2)"}),
    #"Colonne de tables développée1" = Table.ExpandTableColumn(#"Autres colonnes supprimées1", "Transformer le fichier (2)", Table.ColumnNames(#"Transformer le fichier (2)"(#"Exemple de fichier (2)"))),
    #"Type modifié" = Table.TransformColumnTypes(#"Colonne de tables développée1",{{"Source.Name", type text}, {"Colonne1", type text}, {"Colonne2", type text}, {"Runs  →", type number}, {"FOT", type any}}),
    #"Fractionner la colonne par position" = Table.SplitColumn(#"Type modifié", "Source.Name", Splitter.SplitTextByPositions({0, 5}, true), {"Source.Name.1", "Source.Name.2"}),
    #"Type modifié1" = Table.TransformColumnTypes(#"Fractionner la colonne par position",{{"Source.Name.1", type text}, {"Source.Name.2", type text}}),
    #"Colonnes supprimées" = Table.RemoveColumns(#"Type modifié1",{"Source.Name.2", "Colonne2"}),
    #"Colonnes renommées" = Table.RenameColumns(#"Colonnes supprimées",{{"Runs  →", "Limit"}, {"Source.Name.1", "Pièce"}, {"Colonne1", "Type extract"}}),
    #"Supprimer le tableau croisé dynamique des autres colonnes" = Table.UnpivotOtherColumns(Source, {"Limit", "Type extract", "Pièce"}, "Attribut", "Valeur"),
    #"Lignes groupées" = Table.Group(#"Supprimer le tableau croisé dynamique des autres colonnes", {"Pièce", "Type extract", "Limit"}, {{"Tabl", each _, type table [Pièce=text, Type extract=text, Limit=number, Attribut=text, Valeur=number]}}),
    #"Personnalisée ajoutée" = Table.AddColumn(#"Lignes groupées", "Personnalisé", each Table.AddIndexColumn([Tabl],"Index",1)),
    #"Personnalisé développé" = Table.ExpandTableColumn(#"Personnalisée ajoutée", "Personnalisé", {"Attribut", "Valeur", "Index"}, {"Attribut", "Valeur", "Index"}),
    #"Colonnes supprimées1" = Table.RemoveColumns(#"Personnalisé développé",{"Tabl"}),
    #"Type modifié2" = Table.TransformColumnTypes(#"Colonnes supprimées1",{{"Valeur", type number}, {"Limit", type number}}),
    #"Colonnes permutées" = Table.ReorderColumns(#"Type modifié2",{"Pièce", "Type extract", "Limit", "Index", "Attribut", "Valeur"}),
    #"Colonne fusionnée insérée" = Table.AddColumn(#"Colonnes permutées", "Fusionné", each Text.Combine({Text.From([Index], "fr-FR"), [Attribut]}, "-"), type text),
    #"Colonnes supprimées2" = Table.RemoveColumns(#"Colonne fusionnée insérée",{"Index", "Attribut"})
in
    #"Colonnes supprimées2"

L'erreur semble donc venir de la ligne

#"Supprimer le tableau croisé dynamique des autres colonnes" = Table.UnpivotOtherColumns(Source, {"Limit", "Type extract", "Pièce"}, "Attribut", "Valeur")

Gabin

Gabin,

Le problème est dans cette ligne :

 #"Supprimer le tableau croisé dynamique des autres colonnes" = Table.UnpivotOtherColumns(Source, {"Limit", "Type extract", "Pièce"}, "Attribut", "Valeur"),

Il essaye d'établir cette étape dans la Table "Source". Ca fonctionne dans mon fichier car moi l'étape d'avant était bien l'étape Source. Mais toi l'étape d'avant c'est

"#"Colonnes renommées"".

Tu comprends ?

Ah d'accord ! Oui je comprend,

On doit se rapprocher de la solution alors.. mais j'ai un nouveau message d'erreur.

#"Supprimer le tableau croisé dynamique des autres colonnes" = Table.UnpivotOtherColumns("Colonnes renommées", {"Limit", "Type extract", "Pièce"}, "Attribut", "Valeur"),

En modifiant comme cela il me dit ça maintenant:

image

C'est bon j'ai trouvé ! C'est de ma faute vais trop vite...

#"Supprimer le tableau croisé dynamique des autres colonnes" = Table.UnpivotOtherColumns(#"Colonnes renommées", {"Limit", "Type extract", "Pièce"}, "Attribut", "Valeur"),

Comme cela ca fonctionne !

Reste plus qu'as créer les graphs comme tu avais présenté plus tot

Rechercher des sujets similaires à "power query organisation donnees via mise forme graphiq"