Accueil – Le CFO masqué › Forums › Power BI › Convertir JSON en une seule table
- Ce sujet contient 5 réponses, 2 participants et a été mis à jour pour la dernière fois par Kim Leblanc, le il y a 3 années et 6 mois.
-
AuteurArticles
-
17 mars 2021 à 10 h 18 min #884619dd3a942c9Participant
Bonjour,
Je suis totalement débutant en langage JSON et API, et j’ai besoin de votre aide sur ce problème :
J’ai le code JSON suivant (voir image ci-jointe) qui provient d’une requête API.
Cette requête récupère les informations suivantes dans notre logiciel de gestion des temps de travail :
– Table “Saisies de temps” –> 3 données : ID saisie, Date de la saisie et Durée
– Table “Salariés” (Owner) –> 1 donnée : Nom du salarié
– Table “Axes analytiques” (AxisSections) –> 3 données : Code de la catégorie de temps, Code du projet et Code de la tâche.Sur Power BI je souhaite la transformer en table qui devrait avoir 7 colonnes.
Je passe par l’éditeur Power Query pour développer la donnée “Owner” et “AxisSections”.
Je réussi à le faire pour “Owner” mais je bloque sur “AxisSections” qui contient plusieurs niveaux.Pouvez-vous m’aider svp ? Je souhaite obtenir la table que j’ai inséré dans l’image ci-jointe.
Merci.
Attachments:
You must be logged in to view attached files.18 mars 2021 à 8 h 46 min #88482Kim LeblancParticipantBonjour,
Si vous partez de votre tableau du bas dans votre image et que vous développez sur de nouvelles lignes (à partir du menu d’expansion) qu’est-ce que ça vous donne?
19 mars 2021 à 4 h 42 min #885269dd3a942c9Participant19 mars 2021 à 9 h 13 min #88533Kim LeblancParticipantBonjour,
Voici une façon de procéder, par contre, je ne suis pas certaine que ce soit la meilleure façon de procéder avec du Json et ça fonctionnera seulement s’il y a toujours 3 lignes de dupliqués c’est à dire trois valeurs dans la section AxisSection.
Donc, vous pourriez utiliser la fonction de Pivoter la colonne dans Power Query. Mais pour ce faire, vous devrez vous insérer une colonne d’index commençant par zéro puis une autre colonne qui utilise le Modulo avec la valeur 3, ce qui créé une colonne avec les valeurs 0 à 2 pour numéroter vos 3 lignes.
On utilise ensuite cette colonne et AxisSectionCode pour Pivoter (dans options avancées, il vous faudra sélectionne -ne pas agréger-).
Je vous joins un fichier exemple qui montre la démarche.
Au plaisir,
Kim
- Cette réponse a été modifiée le il y a 3 années et 6 mois par Kim Leblanc.
Attachments:
You must be logged in to view attached files.23 mars 2021 à 12 h 55 min #886509dd3a942c9ParticipantBonjour @Kim et merci pour l’aide.
Malheureusement il n’y a pas toujours 3 valeurs dans AxisSections.
Je suis toujours bloqué.Cordialement.
24 mars 2021 à 9 h 22 min #88689Kim LeblancParticipantBonjour,
Il faut donc procéder autrement. Je vous joins une autre façon de procéder.
Il faut d’abord vous créer une colonne d’index puis une colonne Valeur avec 1 pour toutes les lignes. Il faut ensuite fusionner la requête avec elle même.On développe ensuite avec la colonne Id et Index.
On filtre [Index.1] <= [Index] puis on groupe et fait une somme de la colonne Valeur.
On pourra ensuite pivoter. Voir requête CalculNbLignes.
Vous pouvez aussi regarder la question et réponse sur laquelle je me suis basée pour trouver la solution:
Comment faire un cumul conditionnel des données directement dans Power Query ?
Kim
Attachments:
You must be logged in to view attached files. -
AuteurArticles
- Vous devez être connecté pour répondre à ce sujet.