Check your eligibility for this 50% exam voucher offer and join us for free live learning sessions to get prepared for Exam DP-700.
Get StartedDon't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.
Hello,
I need your help on power query to retrieve data from a second table according to the header column and the value of the first column.
I have a table with country, city and population.
A second table, which is my final rendering with the countries in the header and the city in the header.
I need to import the values in the "nb" column into the right cells. However, if the value "KO" is present in the cell, I won't modify it.
If you can please help me and explain how to do this.
I've also tried transposing the table to make the two headings match, but I don't know what to do next.
Thank you
Regarde du coté des options avancées du pivot pour choisir "Nombre".
Table.Pivot(Source, List.Distinct(Source[Country]), "Country", "Nb", List.Count)
Comme ça on obtient des 1 si la valeur existe et des 0 sinon.
Stéphane
Le problème n'est plus le même.
tu indiques au départ que tu veux des valeurs en diagonale et maintenant il peut y avoir plusieurs valeurs sur la même ligne.
il serait plus simple de fournir directement le fait que chaque élément de la colonne "City" peut avoir plusieurs "Country".
ensuite au départ il y avait une valeur de 100000 ou 30000, et maintenant des 1.
donc montre nous le point de départ et le point d'arrivée, ce sera mieux.
Merci
Stéphane
Je complète car j'avais mal compris le KO pour Madrid
Plutot que de vouloir modifier la Table1, je prèfère partir de la table 2 pour reconstruire la table1
tout d'abord, dépivoter la table 1 pour conserver uniquement les KO
puis fusionner la table 2 avec la table 1 pour ramener les KO,
retenir les KO ou sinon prendre le Nb (l'étape ajouter une colonne [Valeur]??[Nb])
puis pivoter le pays.
Pour la table 1
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Supprimer le tableau croisé dynamique des autres colonnes" = Table.UnpivotOtherColumns(Source, {"Country"}, "Attribut", "Valeur")
in
#"Supprimer le tableau croisé dynamique des autres colonnes"
Pour la table 2
let
Source = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
#"Index ajouté" = Table.AddIndexColumn(Source, "Index", 0, 1, Int64.Type),
#"Requêtes fusionnées" = Table.NestedJoin(#"Index ajouté", {"City", "Country"}, Table1, {"Country", "Attribut"}, "Table1", JoinKind.LeftOuter),
#"Table1 développé" = Table.ExpandTableColumn(#"Requêtes fusionnées", "Table1", {"Valeur"}, {"Valeur"}),
#"Personnalisée ajoutée" = Table.AddColumn(#"Table1 développé", "Nb Retenu", each [Valeur]??[Nb]),
#"Colonne dynamique" = Table.Pivot(#"Personnalisée ajoutée", List.Distinct(#"Personnalisée ajoutée"[Country]), "Country", "Nb Retenu"),
#"Lignes triées" = Table.Sort(#"Colonne dynamique",{{"Index", Order.Ascending}}),
#"Colonnes supprimées" = Table.RemoveColumns(#"Lignes triées",{"Nb", "Index", "Valeur"})
in
#"Colonnes supprimées"
Stéphane
Bonjour Stéphane,
Merci pour ton aide la solution fonctionne, j'ai juste une dernière question stp.
Le rendu final:
Dans la colonne1 on vois que j'ai plusieurs "Paris" je voudrais regrouper les valeurs de "Paris" sur une seule ligne en récupèrant les "1" associés.
J'ai essayé de passer par le "group by" de power query mais il ne permet que la sélection 1 par 1 des colonnes, dans mon cas j'ai plus de 400 colonnes et ce chiffre peut varié dans le futur.
J'ai essayé d'utiliser "for each Table.ColumnNames[MaTable]" pour boucler sur toute les colonnes sauf "country" mais ca n'a pas l'air de fonctionner...
le résultat voulu (le nom ded l'ent-etes sont fictifs)
Bonjour
Pour obtenir la table de gauche à partir de celle de droite il suffit de pivoter la colonne "Country" avec la colonne de valeur "Nb" et de choisir l'option avancée "ne pas agréger".
J'ajoute un index avant pour récupérer ensuite l'ordre initial par un tri
let
Source = Votre_Source,
#"Index ajouté" = Table.AddIndexColumn(Source, "Index", 0, 1, Int64.Type),
#"Colonne dynamique" = Table.Pivot(#"Index ajouté", List.Distinct(#"Index ajouté"[Country]), "Country", "Nb"),
#"Lignes triées" = Table.Sort(#"Colonne dynamique",{{"Index", Order.Ascending}})
in
#"Lignes triées"
Stéphane
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Prices go up Feb. 11th.
Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.
User | Count |
---|---|
14 | |
13 | |
12 | |
12 | |
12 |