Toutes mes réponses sur les forums

15 sujets de 31 à 45 (sur un total de 143)
  • Auteur
    Messages
  • en réponse à : Actualisation données #137474
    Xavier Allart
    Participant

    Bonjour

    Pouvez vous au minimun, nous joindre le code source de la requete :
    Dans l’editeur Power Query,depuis le ruban
    Accueil > Editeur avancé.

    Merci

    en réponse à : Format millier d’euros #137473
    Xavier Allart
    Participant

    Bonjour

    Peux etre une solution avec les chaînes de format personnalisées dans Power BI Desktop

    https://learn.microsoft.com/fr-fr/power-bi/create-reports/desktop-custom-format-strings

    Amicalement

    Xavier Allart
    Participant

    Bonjour

    Une solution avec une matrice : placer en ligne
    Partnership / LOB / category / subcategory / garant / Year

    Utiliser les + et les – devant les rubriques en lignes pour développer ou réduire la branche
    Utliser les fleches en bas ou en haut du visuel pour tout développer ou réduire tout.

    Amicalement

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Liste des jours feries de 4 dernieres annees #136964
    Xavier Allart
    Participant

    Bonjour

    Voici un lien vers une explication pour créér un calendrier des jours féries et aussi comme télécharger les jours depuis le site api.gouv.fr

    Formule des jours fériés dans Excel


    https://api.gouv.fr/documentation/jours-feries

    Amicalement

    en réponse à : Contenu Json à exploiter #136799
    Xavier Allart
    Participant

    Voici une autre proposition plus propre en power query, trouvée ici :
    https://exceed.hr/blog/dynamically-expand-table-or-record-columns-in-power-query/

    Remplacer la ligne par
    = Table.ExpandRecordColumn(#”Column1 développé”, “answers”, Record.FieldNames(#”Column1 développé”{0}[answers]), Record.FieldNames(#”Column1 développé”{0}[answers]))

    Code complete
    let
    //working
    // Load the JSON data from the file
    data = Json.Document(File.Contents(“D:\Telechargement\submissions.json”)),

    // Get the content array
    content = data[content],

    // Convert the content array to a table
    //submissions = Table.FromList(content, Splitter.SplitByNothing()),
    submissions = Table.FromList(content, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    //Developper que les colonnes “id”, “answers”

    #”Column1 développé” = Table.ExpandRecordColumn(submissions, “Column1”, {“id”, “answers”}, {“id”, “answers”}),
    // Developper “answers” nombre de colonnes automatique
    #”answers développé 1″ = Table.ExpandRecordColumn(#”Column1 développé”, “answers”, Record.FieldNames(#”Column1 développé”{0}[answers]), Record.FieldNames(#”Column1 développé”{0}[answers])),
    // Pivoter les colonnes “answers” en ligne
    #”Supprimer le tableau croisé dynamique des autres colonnes” = Table.UnpivotOtherColumns(#”answers développé 1″, {“id”}, “Attribut”, “Valeur”),
    // Developper les attributs “answer”, “name” de la colonne “Valeur”
    #”Valeur développé” = Table.ExpandRecordColumn(#”Supprimer le tableau croisé dynamique des autres colonnes”, “Valeur”, {“answer”, “name”}, {“answer”, “name”}),
    //Supprimer la colonne “Attribut”
    #”Colonnes supprimées” = Table.RemoveColumns(#”Valeur développé”,{“Attribut”}),
    //Pivoter en colonne “name” avec comme colonne de valeur “answer”, et en option avancé : non agreger
    #”Colonne dynamique” = Table.Pivot(#”Colonnes supprimées”, List.Distinct(#”Colonnes supprimées”[name]), “name”, “answer”)
    in
    #”Colonne dynamique”

    en réponse à : Contenu Json à exploiter #136798
    Xavier Allart
    Participant

    bonjour

    Une solution simpliste avec Excel pour 250 réponses, pas d’idée comment faire en power query directement :

    {“1″,”2″,”3″,”4″,”5″,”6″,”7″,”8″,”9″,”10″,”11″,”12″,”13″,”14″,”15″,”16″,”17″,”18″,”19″,”20″,”21″,”22″,”23″,”24″,”25″,”26″,”27″,”28″,”29″,”30″,”31″,”32″,”33″,”34″,”35″,”36″,”37″,”38″,”39″,”40″,”41″,”42″,”43″,”44″,”45″,”46″,”47″,”48″,”49″,”50″,”51″,”52″,”53″,”54″,”55″,”56″,”57″,”58″,”59″,”60″,”61″,”62″,”63″,”64″,”65″,”66″,”67″,”68″,”69″,”70″,”71″,”72″,”73″,”74″,”75″,”76″,”77″,”78″,”79″,”80″,”81″,”82″,”83″,”84″,”85″,”86″,”87″,”88″,”89″,”90″,”91″,”92″,”93″,”94″,”95″,”96″,”97″,”98″,”99″,”100″,”101″,”102″,”103″,”104″,”105″,”106″,”107″,”108″,”109″,”110″,”111″,”112″,”113″,”114″,”115″,”116″,”117″,”118″,”119″,”120″,”121″,”122″,”123″,”124″,”125″,”126″,”127″,”128″,”129″,”130″,”131″,”132″,”133″,”134″,”135″,”136″,”137″,”138″,”139″,”140″,”141″,”142″,”143″,”144″,”145″,”146″,”147″,”148″,”149″,”150″,”151″,”152″,”153″,”154″,”155″,”156″,”157″,”158″,”159″,”160″,”161″,”162″,”163″,”164″,”165″,”166″,”167″,”168″,”169″,”170″,”171″,”172″,”173″,”174″,”175″,”176″,”177″,”178″,”179″,”180″,”181″,”182″,”183″,”184″,”185″,”186″,”187″,”188″,”189″,”190″,”191″,”192″,”193″,”194″,”195″,”196″,”197″,”198″,”199″,”200″,”201″,”202″,”203″,”204″,”205″,”206″,”207″,”208″,”209″,”210″,”211″,”212″,”213″,”214″,”215″,”216″,”217″,”218″,”219″,”220″,”221″,”222″,”223″,”224″,”225″,”226″,”227″,”228″,”229″,”230″,”231″,”232″,”233″,”234″,”235″,”236″,”237″,”238″,”239″,”240″,”241″,”242″,”243″,”244″,”245″,”246″,”247″,”248″,”249″,”250”}, {“1″,”2″,”3″,”4″,”5″,”6″,”7″,”8″,”9″,”10″,”11″,”12″,”13″,”14″,”15″,”16″,”17″,”18″,”19″,”20″,”21″,”22″,”23″,”24″,”25″,”26″,”27″,”28″,”29″,”30″,”31″,”32″,”33″,”34″,”35″,”36″,”37″,”38″,”39″,”40″,”41″,”42″,”43″,”44″,”45″,”46″,”47″,”48″,”49″,”50″,”51″,”52″,”53″,”54″,”55″,”56″,”57″,”58″,”59″,”60″,”61″,”62″,”63″,”64″,”65″,”66″,”67″,”68″,”69″,”70″,”71″,”72″,”73″,”74″,”75″,”76″,”77″,”78″,”79″,”80″,”81″,”82″,”83″,”84″,”85″,”86″,”87″,”88″,”89″,”90″,”91″,”92″,”93″,”94″,”95″,”96″,”97″,”98″,”99″,”100″,”101″,”102″,”103″,”104″,”105″,”106″,”107″,”108″,”109″,”110″,”111″,”112″,”113″,”114″,”115″,”116″,”117″,”118″,”119″,”120″,”121″,”122″,”123″,”124″,”125″,”126″,”127″,”128″,”129″,”130″,”131″,”132″,”133″,”134″,”135″,”136″,”137″,”138″,”139″,”140″,”141″,”142″,”143″,”144″,”145″,”146″,”147″,”148″,”149″,”150″,”151″,”152″,”153″,”154″,”155″,”156″,”157″,”158″,”159″,”160″,”161″,”162″,”163″,”164″,”165″,”166″,”167″,”168″,”169″,”170″,”171″,”172″,”173″,”174″,”175″,”176″,”177″,”178″,”179″,”180″,”181″,”182″,”183″,”184″,”185″,”186″,”187″,”188″,”189″,”190″,”191″,”192″,”193″,”194″,”195″,”196″,”197″,”198″,”199″,”200″,”201″,”202″,”203″,”204″,”205″,”206″,”207″,”208″,”209″,”210″,”211″,”212″,”213″,”214″,”215″,”216″,”217″,”218″,”219″,”220″,”221″,”222″,”223″,”224″,”225″,”226″,”227″,”228″,”229″,”230″,”231″,”232″,”233″,”234″,”235″,”236″,”237″,”238″,”239″,”240″,”241″,”242″,”243″,”244″,”245″,”246″,”247″,”248″,”249″,”250”})

    A1:A250 liste des nombres de 1 à 250
    D3 =JOINDRE.TEXTE(“,”;1;CAR(34)&A1:A250&CAR(34))
    D5 =”{“&D3&”}, {“&D3&”})”

    Copier D5 dans le code power query

    Amicalement

    en réponse à : Contenu Json à exploiter #136788
    Xavier Allart
    Participant

    Bonjour

    Voici je que j’ai compris, l’idée est d’avoir un code permettant de récupérer les réponses de questionnaires ne connaissancant pas à l’avance le nombre de questions et le nom de celles-ci

    Voici une solution pour répondre au probleme
    Pour le nombre de questions, il faut definir une limite (nombre maxi) j’ai choisi 7 dans mon exemple

    let
    //working
    // Load the JSON data from the file
    data = Json.Document(File.Contents(“D:\Telechargement\submissions.json”)),

    // Get the content array
    content = data[content],

    // Convert the content array to a table
    //submissions = Table.FromList(content, Splitter.SplitByNothing()),
    submissions = Table.FromList(content, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    //Developper que les colonnes “id”, “answers”
    #”Column1 développé” = Table.ExpandRecordColumn(submissions, “Column1”, {“id”, “answers”}, {“id”, “answers”}),
    // Developper “answers” pour un max de 7 questions. si besoin completer les 2 listes
    #”answers développé” = Table.ExpandRecordColumn(#”Column1 développé”, “answers”, {“1”, “2”, “3”, “4”, “5”, “6”, “7”}, {“1”, “2”, “3”, “4”, “5”, “6”, “7”}),
    // Pivoter les colonnes “answers” en ligne
    #”Supprimer le tableau croisé dynamique des autres colonnes” = Table.UnpivotOtherColumns(#”answers développé”, {“id”}, “Attribut”, “Valeur”),
    // Developper les attributs “answer”, “name” de la colonne “Valeur”
    #”Valeur développé” = Table.ExpandRecordColumn(#”Supprimer le tableau croisé dynamique des autres colonnes”, “Valeur”, {“answer”, “name”}, {“answer”, “name”}),
    //Supprimer la colonne “Attribut”
    #”Colonnes supprimées” = Table.RemoveColumns(#”Valeur développé”,{“Attribut”}),
    //Pivoter en colonne “name” avec comme colonne de valeur “answer”, et en option avancé : non agreger
    #”Colonne dynamique” = Table.Pivot(#”Colonnes supprimées”, List.Distinct(#”Colonnes supprimées”[name]), “name”, “answer”)
    in
    #”Colonne dynamique”

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Contenu Json à exploiter #136732
    Xavier Allart
    Participant

    Bonjour
    Je ne trouve pas le fichier json en piece jointe.
    Amicalement

    en réponse à : Masquer les totaux d’une seule colonne dans une matrice #136726
    Xavier Allart
    Participant

    Bonjour

    Pas vraiment une solution, mais au lieu de faire la somme des coûts unitaire, faite en la moyenne.
    Pas mieux

    Amicalement

    en réponse à : Passer d’une liste en colonne à un tableau. #136723
    Xavier Allart
    Participant

    Bonjour

    Si les données sont toujours sur 8 lignes et que le mot “Détails” est lui aussi toujours sur la 9éme ligne, voici une solution :

    Excel :
    Créer la table suivante avec le nom “Ref”
    Ligne Texte
    1 Réfèrence
    2 Date d’émission
    3 Date de dépôt
    4 Montant HT
    5 Montant TTC
    6 Etat
    7 N* de virement
    8 Date de virement

    Power Query :
    Importer votre tableau, “Tableau1” et “Ref” dans Power Query
    Pour la requête “Tableau1” :
    Je n’ai qu’une colonne nommée “Colonne1”
    // Création d’un identifiant unique pour chaque dossier
    Ajouter une colonne d’index commençant à 1
    Ajouter une colonne conditionnelle “iD” qui affiche le N° d’index si le reste de la division de celui par 9 vaut 0, sinon affiché 0
    Sélection cette nouvelle colonne “iD” :
    Transformer > Remplir ves le bas
    Filtrer sur non null
    Supprimer la colonne “Index”
    // Création d’un index pour chaque type de ligne (Réference = 1, Date d’émission = 2, …)
    Transformer : Regrouper par :
    De base
    iD
    Nombre Compter les lignes
    Dans la barre de formule, remplacer “each Table.RowCount(_), Int64.Type}})” par each Table.AddIndexColumn(_,”Index”,0,1), type table}})
    Développer la colonne “Nombre”, ne pas cocher “iD”
    // Remplacement du N° index par son nom
    Fusionner avec la requete “Ref” sur
    “Tableau1″.”Index” <=> “Ref”.”Ligne”
    Type de jointure : Externe gauche
    Développer la colonne “Ref”, Décocher le nom de la colonne …
    // Pivoter la liste en colonne
    Sélectionner la colonne “Texte”
    Filtrer sur non null
    Transformer > Pivoter la colonne,
    Choisir comme colonne de valeur “Colonne1”
    Options Avancées : Ne pas agréger
    // Mise en forme
    Supprimer les colonnes “iD” et “Ligne”
    Pour les colonnes “Montant HT” et “Montant TTC” remplacer le point par une virgule
    Appliquer les formats adaptés

    Code :
    let
    Source = Excel.CurrentWorkbook(){[Name=”Tableau1″]}[Content],
    #”Index ajouté” = Table.AddIndexColumn(Source, “Index”, 1, 1, Int64.Type),
    #”Colonne conditionnelle ajoutée” = Table.AddColumn(#”Index ajouté”, “iD”, each if Number.Mod([Index],9) = 0 then [Index] else null),
    #”Rempli vers le bas” = Table.FillDown(#”Colonne conditionnelle ajoutée”,{“iD”}),
    #”Lignes filtrées” = Table.SelectRows(#”Rempli vers le bas”, each ([iD] <> null)),
    #”Colonnes supprimées” = Table.RemoveColumns(#”Lignes filtrées”,{“Index”}),
    #”Lignes groupées” = Table.Group(#”Colonnes supprimées”, {“iD”}, {{“Nombre”, each Table.AddIndexColumn(_,”Index”,0,1), type table}}),
    #”Nombre développé” = Table.ExpandTableColumn(#”Lignes groupées”, “Nombre”, {“Colonne1”, “Index”}, {“Colonne1”, “Index”}),
    #”Requêtes fusionnées1″ = Table.NestedJoin(#”Nombre développé”, {“Index”}, Ref, {“Ligne”}, “Ref”, JoinKind.LeftOuter),
    #”Ref développé” = Table.ExpandTableColumn(#”Requêtes fusionnées1″, “Ref”, {“Ligne”, “Texte”}, {“Ligne”, “Texte”}),
    #”Lignes filtrées2″ = Table.SelectRows(#”Ref développé”, each ([Texte] <> null)),
    #”Colonnes supprimées1″ = Table.RemoveColumns(#”Lignes filtrées2″,{“Index”, “Ligne”}),
    #”Colonne dynamique1″ = Table.Pivot(#”Colonnes supprimées1″, List.Distinct(#”Colonnes supprimées1″[Texte]), “Texte”, “Colonne1″),
    #”Colonnes supprimées2″ = Table.RemoveColumns(#”Colonne dynamique1”,{“iD”}),
    #”Valeur remplacée” = Table.ReplaceValue(#”Colonnes supprimées2″,”.”,”,”,Replacer.ReplaceText,{“Montant HT”, “Montant TTC”}),
    #”Type modifié1″ = Table.TransformColumnTypes(#”Valeur remplacée”,{{“Date de virement”, type date}, {“N* de virement”, type text}, {“Etat”, type text}, {“Montant TTC”, Currency.Type}, {“Montant HT”, Currency.Type}, {“Date de dépôt”, type date}, {“Date d’émission”, type date}, {“Réfèrence”, type text}})
    in
    #”Type modifié1″

    Amicalement

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Visualisation Power BI – Stacked chart #135774
    Xavier Allart
    Participant

    Bonjour

    Voici une solution
    En power Query
    charger la table
    Renommer “Margin” en “Cost 99”
    Sélectionner “Project “, “Country”
    Dépivoter les autres colonnes
    Ajouter une colonne nommée “Série” pour extrait de la colonne “Attribut” le texte avant l’espace soit “Cost”, soit “Rev”
    Dans la colonne “Valeur”, remplacer “Cost 99” par “Margin”

    En power BI affichage du rapport
    Actualiser les données
    Inserer un viseul “Histogramme empilé”
    Axe X : Série
    Axe Y : Somme de Valeur
    Légende : Attribut
    Petits Multiple : Project, Country

    Cordialement

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Carte choroplèthe par région sans Bretagne ? #135767
    Xavier Allart
    Participant

    Bonjour
    Merci pour le retour, mais trop drole ou inquietant, chez moi cela ne fonctionne pas ????
    Voir la capture d’écran
    Cordialement

    Attachments:
    You must be logged in to view attached files.
    en réponse à : import de la première colonne du fichier #135760
    Xavier Allart
    Participant

    bonjour

    Voici une autre solution
    Dans power query importer le fichier xls entant que fichier texte et non pas Excel.

    Cordialement

    en réponse à : Renommer des colonnes dont le nombre va changer à chaque mois #135751
    Xavier Allart
    Participant

    Bonjour

    Pour completer voici une solution pour gerer la requete de creation de la ligne d’entete (T_Cible)

    Utilisation : en B2 sélectionner dans la liste déroulante, le mois désiré,
    puis Données > Actualiser tout

    Je suis parti du tableau “Tableau1” qui genere tous les libelles pour les 12 mois de l’année
    La requete T_Cible, filtre le nombre de ligne à conserver en fonction du mois désiré, puis tri le tableau sur budget et mois et enfin transpose les lignes en colonnes.

    Comme proposer par Guy, il ne reste plus qu’a creer un requete qui ajoute votre requete à celle-ci.

    Cordialement

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Carte choroplèthe par région sans Bretagne ? #135606
    Xavier Allart
    Participant

    bonjour

    Voici une proposition
    pour les départements ajouter une colonne avec leur codes
    au niveau power bi
    pour les champs suivants, ils faut les catégoriser comme ceci :
    Pays => Pays
    Région => Département ou région
    Code_DPT => Département ou région

    Depuis le champ Pays créer une Hiérarchie
    Ajouter Région, puis Code_DPT

    Place le nouveau champ Pays_Hiérarchie dans la zone emplacement de la carte
    Sur le visuel vous pourrez ensuite utiliser les icônes en haut du visuel pour explorer la donnée et ainsi monter et descendre dans la hiérarchie de localisation.

    cordialement

15 sujets de 31 à 45 (sur un total de 143)