Convertir JSON en une seule table

Accueil – Le CFO masqué Forums Power BI Convertir JSON en une seule table

Mots-clés :  JSON, PowerBi

  • 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 semaines et 5 jours.
6 sujets de 1 à 6 (sur un total de 6)
  • Auteur
    Articles
  • #88461
    9dd3a942c9
    Participant

    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.
    #88482
    Kim Leblanc
    Participant

    Bonjour,

    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?

    #88526
    9dd3a942c9
    Participant

    Bonjour @Kim,

    Lorsque je développe sur de nouvelles lignes, cela duplique mes lignes par 3 (voir image ci-jointe).
    Je souhaiterai plutôt qu’elle se développe en 3 colonnes.

    Merci pour votre aide.

    Attachments:
    You must be logged in to view attached files.
    #88533
    Kim Leblanc
    Participant

    Bonjour,

    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 1 mois par Kim Leblanc.
    Attachments:
    You must be logged in to view attached files.
    #88650
    9dd3a942c9
    Participant

    Bonjour @Kim et merci pour l’aide.

    Malheureusement il n’y a pas toujours 3 valeurs dans AxisSections.
    Je suis toujours bloqué.

    Cordialement.

    #88689
    Kim Leblanc
    Participant

    Bonjour,

    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.
6 sujets de 1 à 6 (sur un total de 6)
  • Vous devez être connecté pour répondre à ce sujet.