Forum Discussion
Anonymous
7 years agoNot applicable
Dynamically update column names
I've got a series of tables that all look the same for different countries, I.e.: Date Sessions Users Goal 1 Goal 2 Goal 3 etc 04/06/19 359 252 32 21 3 etc etc I've th...
- 7 years ago
Hi Anonymous ,
You need to unpivot each country table, then, add a custom column to lookup to [Label] field from the summary table. At last, pivot country table.
To reference to column in another table, please see below M function.
#"Added Custom" = Table.AddColumn(#"Renamed Columns", "Custom", each (let currentGoal = [Goal] in Table.SelectRows(TB1, each [Country] = "GB" and [Goal] = currentGoal)){0}[Label]),The whole M code in advanced editor is like below.
let Source = Excel.Workbook(File.Contents("C:\Users\xxxxx\Desktop\Sample Data.xlsx"), null, true), GB_Sheet = Source{[Item="GB",Kind="Sheet"]}[Data], #"Promoted Headers" = Table.PromoteHeaders(GB_Sheet, [PromoteAllScalars=true]), #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Date", type date}, {"Sessions", Int64.Type}, {"Users", Int64.Type}, {"Goal 1", Int64.Type}, {"Goal 2", Int64.Type}, {"Goal 3", Int64.Type}}), #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Date", "Sessions", "Users"}, "Attribute", "Value"), #"Renamed Columns" = Table.RenameColumns(#"Unpivoted Columns",{{"Attribute", "Goal"}}), #"Added Custom" = Table.AddColumn(#"Renamed Columns", "Custom", each (let currentGoal = [Goal] in Table.SelectRows(TB1, each [Country] = "GB" and [Goal] = currentGoal)){0}[Label]), #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Goal"}), #"Pivoted Column" = Table.Pivot(#"Removed Columns", List.Distinct(#"Removed Columns"[Custom]), "Custom", "Value") in #"Pivoted Column"I have uploaded the sample .pbix file for your reference.
Best regards,
Yuliana Gu
edhans
Community Champion
7 years agoCan you post an example of what the expected output is? I cannot figure out how those two tables are related.
Anonymous
7 years agoNot applicable
Sure thing, I am expecting this output for each country table:
US
| Date | Sessions | Users | Blue | Red | Yellow | etc |
| 04/06/19 | 359 | 252 | 32 | 21 | 3 | etc |
| etc |
GB
| Date | Sessions | Users | Red | Yellow | Green | etc |
| 04/06/19 | 34 | 145 | 31 | 16 | 3 | etc |
| etc |
AU
| Date | Sessions | Users | Green | Blue | Red | etc |
| 04/06/19 | 42 | 175 | 12 | 14 | 1 | etc |
| etc |
And so on.
Does this make sense?