Toutes mes réponses sur les forums
-
AuteurMessages
-
Xavier Allart
ParticipantBonjour
Pouvez vous au minimun, nous joindre le code source de la requete :
Dans l’editeur Power Query,depuis le ruban
Accueil > Editeur avancé.Merci
Xavier Allart
ParticipantBonjour
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
30 janvier 2024 à 6 h 24 min en réponse à : comment passer d’un “group by” à un autre dans un visuel de table? #137039Xavier Allart
ParticipantBonjour
Une solution avec une matrice : placer en ligne
Partnership / LOB / category / subcategory / garant / YearUtiliser 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.Xavier Allart
ParticipantBonjour
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
https://api.gouv.fr/documentation/jours-feriesAmicalement
Xavier Allart
ParticipantVoici 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”Xavier Allart
Participantbonjour
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
Xavier Allart
ParticipantBonjour
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 exemplelet
//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.Xavier Allart
ParticipantBonjour
Je ne trouve pas le fichier json en piece jointe.
Amicalement23 janvier 2024 à 9 h 23 min en réponse à : Masquer les totaux d’une seule colonne dans une matrice #136726Xavier Allart
ParticipantBonjour
Pas vraiment une solution, mais au lieu de faire la somme des coûts unitaire, faite en la moyenne.
Pas mieuxAmicalement
Xavier Allart
ParticipantBonjour
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 virementPower 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ésCode :
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.Xavier Allart
ParticipantBonjour
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, CountryCordialement
Attachments:
You must be logged in to view attached files.Xavier Allart
ParticipantBonjour
Merci pour le retour, mais trop drole ou inquietant, chez moi cela ne fonctionne pas ????
Voir la capture d’écran
CordialementAttachments:
You must be logged in to view attached files.Xavier Allart
Participantbonjour
Voici une autre solution
Dans power query importer le fichier xls entant que fichier texte et non pas Excel.Cordialement
20 décembre 2023 à 9 h 51 min en réponse à : Renommer des colonnes dont le nombre va changer à chaque mois #135751Xavier Allart
ParticipantBonjour
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 toutJe 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.Xavier Allart
Participantbonjour
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égionDepuis le champ Pays créer une Hiérarchie
Ajouter Région, puis Code_DPTPlace 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
-
AuteurMessages