IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

POWER Discussion :

Aide sur POWER QUERY


Sujet :

POWER

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2020
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2020
    Messages : 67
    Points : 31
    Points
    31
    Par défaut Aide sur POWER QUERY
    Bonjour,

    pour un client, je dois traiter des données de l'ONU téléchargeable ici : https://www.un.org/securitycouncil/f...lidated-list#2

    Malheureusement, on ne peut récupérer les données que sous 3 formats PdF, XML et HTML.

    Avec Power Query, j'ai donc tenté de récupérer ces données, mais je me retrouve face à un problème.

    En effet, voici comment je traite cette importation de données : je vais dans "Données / Obtenir des données / A partir d'un fichier XML" (cf. ci-dessous)

    Nom : 01.jpg
Affichages : 115
Taille : 74,9 Ko

    Dans l'écran qui s'ouvre j'indique le chemin suivant : https://scsanctions.un.org/resources...nsolidated.xml et je clique sur OUVRIR, pour obtenir cet écran :

    Nom : 02.jpg
Affichages : 109
Taille : 30,4 Ko

    Je clique alors sur "Transformer les données" et j'obtiens :
    Nom : 03.jpg
Affichages : 109
Taille : 17,2 Ko

    Je clique alors sur les 2 fleches à droite de Individuals pour développer son contenu (2 fois de suite) pour obtenir en 11eme colonne ceci :

    Nom : 04.jpg
Affichages : 115
Taille : 19,7 Ko

    Dans cette colonne, je reclique sur les 2 fleches pour développer les tables, ce qui donne :
    Nom : 05.jpg
Affichages : 118
Taille : 17,5 Ko

    Comme vous pouvez le constater, en 6ème ligne, j'ai encore une table (et sur d'autres lignes) mais je ne peux plus développer ces tables, car il n'y a plus les 2 fleches.

    Comment faire SVP ?

    Merci d'avance pour votre aide.

  2. #2
    Membre émérite
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 095
    Points : 2 597
    Points
    2 597
    Par défaut
    Bonjour
    remarque préalable : il aurait été préférable de coller votre code entièrement pour éviter de devoir refaire les étapes soi-même


    en effet, il reste une table mais on n'a plus les flèches pour les développer.
    une méthode consiste à insérer une étape avec le fx et à prendre modèle sur les étapes précédentes en écrivant le code à la main - en indiquant le titre de la colonne de la table en question : Element:Text

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = Table.ExpandTableColumn(#"Nom de l'étape précédente", "Nom de la colonne qu'on veut étendre", {"Element:Text"})
    Stéphane

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2020
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2020
    Messages : 67
    Points : 31
    Points
    31
    Par défaut
    Bonjour et merci pour votre réponse rapide.

    Malheureusement, j'obtiens le message suivant :

    Nom : 06.jpg
Affichages : 81
Taille : 31,6 Ko

    Et comme je débute sous PowerQuery, je ne sais pas comment gérer le problème.

    sinon, voici le code complet, sans la dernière ligne engendrant le message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    let
        Source = Xml.Tables(Web.Contents("https://scsanctions.un.org/resources/xml/fr/consolidated.xml")),
        #"Type modifié" = Table.TransformColumnTypes(Source,{{"Attribute:dateGenerated", type datetime}}),
        #"Autres colonnes supprimées" = Table.SelectColumns(#"Type modifié",{"INDIVIDUALS"}),
        #"INDIVIDUALS développé" = Table.ExpandTableColumn(#"Autres colonnes supprimées", "INDIVIDUALS", {"INDIVIDUAL"}, {"INDIVIDUALS.INDIVIDUAL"}),
        #"INDIVIDUALS.INDIVIDUAL développé" = Table.ExpandTableColumn(#"INDIVIDUALS développé", "INDIVIDUALS.INDIVIDUAL", {"DATAID", "VERSIONNUM", "FIRST_NAME", "SECOND_NAME", "THIRD_NAME", "UN_LIST_TYPE", "REFERENCE_NUMBER", "LISTED_ON", "NAME_ORIGINAL_SCRIPT", "COMMENTS1", "TITLE", "DESIGNATION", "NATIONALITY", "LIST_TYPE", "LAST_DAY_UPDATED", "INDIVIDUAL_ALIAS", "INDIVIDUAL_ADDRESS", "INDIVIDUAL_DATE_OF_BIRTH", "INDIVIDUAL_PLACE_OF_BIRTH", "INDIVIDUAL_DOCUMENT", "SORT_KEY", "SORT_KEY_LAST_MOD", "GENDER", "FOURTH_NAME"}, {"INDIVIDUALS.INDIVIDUAL.DATAID", "INDIVIDUALS.INDIVIDUAL.VERSIONNUM", "INDIVIDUALS.INDIVIDUAL.FIRST_NAME", "INDIVIDUALS.INDIVIDUAL.SECOND_NAME", "INDIVIDUALS.INDIVIDUAL.THIRD_NAME", "INDIVIDUALS.INDIVIDUAL.UN_LIST_TYPE", "INDIVIDUALS.INDIVIDUAL.REFERENCE_NUMBER", "INDIVIDUALS.INDIVIDUAL.LISTED_ON", "INDIVIDUALS.INDIVIDUAL.NAME_ORIGINAL_SCRIPT", "INDIVIDUALS.INDIVIDUAL.COMMENTS1", "INDIVIDUALS.INDIVIDUAL.TITLE", "INDIVIDUALS.INDIVIDUAL.DESIGNATION", "INDIVIDUALS.INDIVIDUAL.NATIONALITY", "INDIVIDUALS.INDIVIDUAL.LIST_TYPE", "INDIVIDUALS.INDIVIDUAL.LAST_DAY_UPDATED", "INDIVIDUALS.INDIVIDUAL.INDIVIDUAL_ALIAS", "INDIVIDUALS.INDIVIDUAL.INDIVIDUAL_ADDRESS", "INDIVIDUALS.INDIVIDUAL.INDIVIDUAL_DATE_OF_BIRTH", "INDIVIDUALS.INDIVIDUAL.INDIVIDUAL_PLACE_OF_BIRTH", "INDIVIDUALS.INDIVIDUAL.INDIVIDUAL_DOCUMENT", "INDIVIDUALS.INDIVIDUAL.SORT_KEY", "INDIVIDUALS.INDIVIDUAL.SORT_KEY_LAST_MOD", "INDIVIDUALS.INDIVIDUAL.GENDER", "INDIVIDUALS.INDIVIDUAL.FOURTH_NAME"}),
        #"INDIVIDUALS.INDIVIDUAL.TITLE développé" = Table.ExpandTableColumn(#"INDIVIDUALS.INDIVIDUAL développé", "INDIVIDUALS.INDIVIDUAL.TITLE", {"VALUE"}, {"INDIVIDUALS.INDIVIDUAL.TITLE.VALUE"})
    in
        #"INDIVIDUALS.INDIVIDUAL.TITLE développé"
    Merci d'avance.




    Citation Envoyé par Raccourcix Voir le message
    Bonjour
    remarque préalable : il aurait été préférable de coller votre code entièrement pour éviter de devoir refaire les étapes soi-même


    en effet, il reste une table mais on n'a plus les flèches pour les développer.
    une méthode consiste à insérer une étape avec le fx et à prendre modèle sur les étapes précédentes en écrivant le code à la main - en indiquant le titre de la colonne de la table en question : Element:Text

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = Table.ExpandTableColumn(#"Nom de l'étape précédente", "Nom de la colonne qu'on veut étendre", {"Element:Text"})
    Stéphane

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 473
    Points : 16 354
    Points
    16 354
    Par défaut
    Bonjour

    En fait dans certaines colonnes, TITLE notamment tu as à la fois des infos à plat et des tables car il y a plusieurs infos pour un individu : exemples ligne 6 il a le titre de Mollah et le titre de Maulavi, ligne 10 Mollah et Hadji

    Il faut créer une colonne personnalisé avec cette formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =if Value.Is([TITLE], type table) then [TITLE] else #table({"TITLE"},{{[TITLE]}})
    Puis le développer avec comme nom TITLES par exemple

    (Expliqué ici
    )

    A faire pour toutes les colonnes à contenu mixte

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2020
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2020
    Messages : 67
    Points : 31
    Points
    31
    Par défaut
    Merci beaucoup, je vais tester cela tout de suite


    Citation Envoyé par 78chris Voir le message
    Bonjour

    En fait dans certaines colonnes, TITLE notamment tu as à la fois des infos à plat et des tables car il y a plusieurs infos pour un individu : exemples ligne 6 il a le titre de Mollah et le titre de Maulavi, ligne 10 Mollah et Hadji

    Il faut créer une colonne personnalisé avec cette formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =if Value.Is([TITLE], type table) then [TITLE] else #table({"TITLE"},{{[TITLE]}})
    Puis le développer avec comme nom TITLES par exemple

    (Expliqué ici
    )

    A faire pour toutes les colonnes à contenu mixte

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2020
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2020
    Messages : 67
    Points : 31
    Points
    31
    Par défaut
    Super ! Merci beaucoup, cela fonctionne parfaitement !

  7. #7
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 473
    Points : 16 354
    Points
    16 354
    Par défaut
    RE

    Je te donne le début du code que j'ai dans ma requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    let
        Source = Xml.Tables(Web.Contents("https://scsanctions.un.org/resources/xml/fr/consolidated.xml")),
        #"Type modifié" = Table.TransformColumnTypes(Source,{{"Attribute:dateGenerated", type datetime}}),
        #"INDIVIDUALS développé" = Table.ExpandTableColumn(#"Type modifié", "INDIVIDUALS", {"INDIVIDUAL"}, {"INDIVIDUAL"}),
        #"INDIVIDUAL développé" = Table.ExpandTableColumn(#"INDIVIDUALS développé", "INDIVIDUAL", {"DATAID", "VERSIONNUM", "FIRST_NAME", "SECOND_NAME", "THIRD_NAME", "UN_LIST_TYPE", "REFERENCE_NUMBER", "LISTED_ON", "NAME_ORIGINAL_SCRIPT", "COMMENTS1", "TITLE", "DESIGNATION", "NATIONALITY", "LIST_TYPE", "LAST_DAY_UPDATED", "INDIVIDUAL_ALIAS", "INDIVIDUAL_ADDRESS", "INDIVIDUAL_DATE_OF_BIRTH", "INDIVIDUAL_PLACE_OF_BIRTH", "INDIVIDUAL_DOCUMENT", "SORT_KEY", "SORT_KEY_LAST_MOD", "GENDER", "FOURTH_NAME"}, {"DATAID", "VERSIONNUM", "FIRST_NAME", "SECOND_NAME", "THIRD_NAME", "UN_LIST_TYPE", "REFERENCE_NUMBER", "LISTED_ON", "NAME_ORIGINAL_SCRIPT", "COMMENTS1", "TITLE", "DESIGNATION", "NATIONALITY", "LIST_TYPE", "LAST_DAY_UPDATED", "INDIVIDUAL_ALIAS", "INDIVIDUAL_ADDRESS", "INDIVIDUAL_DATE_OF_BIRTH", "INDIVIDUAL_PLACE_OF_BIRTH", "INDIVIDUAL_DOCUMENT", "SORT_KEY", "SORT_KEY_LAST_MOD", "GENDER", "FOURTH_NAME"}),
        TITRE = Table.ExpandTableColumn(#"INDIVIDUAL développé", "TITLE", {"VALUE"}, {"TITLE"}),
        #"Personnalisée ajoutée" = Table.AddColumn(TITRE, "TIT", each if Value.Is([TITLE], type table) then [TITLE] else #table({"TITLE"},{{[TITLE]}})),
        #"TIT développé" = Table.ExpandTableColumn(#"Personnalisée ajoutée", "TIT", {"TITLE"}, {"TITLES"}),
    Evite de garder le nom des tables d'origine quand tu développes car c'est vite illisible

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2020
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2020
    Messages : 67
    Points : 31
    Points
    31
    Par défaut
    C'est bon, entretemps j'ai compris mon erreur. Merci beaucoup !

    Citation Envoyé par 78chris Voir le message
    RE

    Je te donne le début du code que j'ai dans ma requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    let
        Source = Xml.Tables(Web.Contents("https://scsanctions.un.org/resources/xml/fr/consolidated.xml")),
        #"Type modifié" = Table.TransformColumnTypes(Source,{{"Attribute:dateGenerated", type datetime}}),
        #"INDIVIDUALS développé" = Table.ExpandTableColumn(#"Type modifié", "INDIVIDUALS", {"INDIVIDUAL"}, {"INDIVIDUAL"}),
        #"INDIVIDUAL développé" = Table.ExpandTableColumn(#"INDIVIDUALS développé", "INDIVIDUAL", {"DATAID", "VERSIONNUM", "FIRST_NAME", "SECOND_NAME", "THIRD_NAME", "UN_LIST_TYPE", "REFERENCE_NUMBER", "LISTED_ON", "NAME_ORIGINAL_SCRIPT", "COMMENTS1", "TITLE", "DESIGNATION", "NATIONALITY", "LIST_TYPE", "LAST_DAY_UPDATED", "INDIVIDUAL_ALIAS", "INDIVIDUAL_ADDRESS", "INDIVIDUAL_DATE_OF_BIRTH", "INDIVIDUAL_PLACE_OF_BIRTH", "INDIVIDUAL_DOCUMENT", "SORT_KEY", "SORT_KEY_LAST_MOD", "GENDER", "FOURTH_NAME"}, {"DATAID", "VERSIONNUM", "FIRST_NAME", "SECOND_NAME", "THIRD_NAME", "UN_LIST_TYPE", "REFERENCE_NUMBER", "LISTED_ON", "NAME_ORIGINAL_SCRIPT", "COMMENTS1", "TITLE", "DESIGNATION", "NATIONALITY", "LIST_TYPE", "LAST_DAY_UPDATED", "INDIVIDUAL_ALIAS", "INDIVIDUAL_ADDRESS", "INDIVIDUAL_DATE_OF_BIRTH", "INDIVIDUAL_PLACE_OF_BIRTH", "INDIVIDUAL_DOCUMENT", "SORT_KEY", "SORT_KEY_LAST_MOD", "GENDER", "FOURTH_NAME"}),
        TITRE = Table.ExpandTableColumn(#"INDIVIDUAL développé", "TITLE", {"VALUE"}, {"TITLE"}),
        #"Personnalisée ajoutée" = Table.AddColumn(TITRE, "TIT", each if Value.Is([TITLE], type table) then [TITLE] else #table({"TITLE"},{{[TITLE]}})),
        #"TIT développé" = Table.ExpandTableColumn(#"Personnalisée ajoutée", "TIT", {"TITLE"}, {"TITLES"}),

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Chargement des données sur Power Query
    Par nathank dans le forum Power BI
    Réponses: 0
    Dernier message: 09/05/2023, 21h48
  2. SERIE.JOUR.OUVRE SUR POWER QUERY
    Par sapeur1 dans le forum Power BI
    Réponses: 1
    Dernier message: 18/01/2023, 16h50
  3. Plusieurs index dans une même colonne sur Power query
    Par Jean_talus dans le forum POWER
    Réponses: 4
    Dernier message: 09/03/2022, 00h05
  4. Aide sur une Query
    Par NABIL74 dans le forum Bases de données
    Réponses: 6
    Dernier message: 31/12/2016, 08h34
  5. [XL-2003] Aide sur MS QUERY
    Par cycy75 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 14/01/2010, 16h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo