有没有办法使用 Power Query 合并月份和年份并在单独的列转换中添加城市?
Is there a way to combine month and year and add city in seperate column transformation using PowerQuery?
有没有办法使用 PowerQuery 实现这种转换?
输入table:
城市年份
月份
价值
伦敦
2016
1 月
19
二月
20
三月
17
4 月
20
2017
1 月
19
二月
20
三月
17
4 月
20
巴黎
2016
1 月
19
二月
20
三月
17
4 月
20
2017
1 月
19
二月
20
三月
17
4 月
20
罗马
2016
1 月
19
二月
20
三月
17
4 月
20
2017
1 月
19
二月
20
三月
17
4 月
20
输出:
城市
Month/Year
价值
伦敦
2016 年 1 月
19
伦敦
2016 年 2 月
20
伦敦
2016 年 3 月
17
伦敦
2016 年 4 月
20
伦敦
2017 年 1 月
19
伦敦
2017 年 2 月
20
伦敦
2017 年 3 月
17
伦敦
2017 年 4 月
20
巴黎
2016 年 1 月
19
巴黎
2016 年 2 月
20
巴黎
2016 年 3 月
17
巴黎
2016 年 4 月
20
巴黎
2017 年 1 月
19
巴黎
2017 年 2 月
20
巴黎
2017 年 3 月
17
巴黎
2017 年 4 月
20
罗马
2016 年 1 月
19
罗马
2016 年 2 月
20
罗马
2016 年 3 月
17
罗马
2016 年 4 月
20
罗马
2017 年 1 月
19
罗马
2017 年 2 月
20
罗马
2017 年 3 月
17
罗马
2017 年 4 月
20
这是使用示例数据模式执行此操作的强力方法:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8snPS8nPU9JRAqFYnWglIwNDMyDbKzGvNLGoEsgytASLA1luqUlFUEEjA5igb2JRcgZImTlMxLGgKDMHoQZooDlVDQxILMosHlIuDsrPTR06Do4FAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"City Year" = _t, Month = _t, Value = _t]),
#"Added Custom" = Table.AddColumn(Source, "City", each if [Month] = "" then [City Year] else null, type text),
#"Filled Down" = Table.FillDown(#"Added Custom",{"City"}),
#"Filtered Rows" = Table.SelectRows(#"Filled Down", each ([Month] <> "")),
#"Replaced Value" = Table.ReplaceValue(#"Filtered Rows","",null,Replacer.ReplaceValue,{"City Year"}),
#"Filled Down1" = Table.FillDown(#"Replaced Value",{"City Year"}),
#"Inserted Merged Column" = Table.AddColumn(#"Filled Down1", "Month/Year", each Text.Combine({[Month], [City Year]}, " "), type text),
#"Removed Other Columns" = Table.SelectColumns(#"Inserted Merged Column",{"City", "Month/Year", "Value"})
in
#"Removed Other Columns"
有没有办法使用 PowerQuery 实现这种转换?
输入table:
城市年份 | 月份 | 价值 |
---|---|---|
伦敦 | ||
2016 | 1 月 | 19 |
二月 | 20 | |
三月 | 17 | |
4 月 | 20 | |
2017 | 1 月 | 19 |
二月 | 20 | |
三月 | 17 | |
4 月 | 20 | |
巴黎 | ||
2016 | 1 月 | 19 |
二月 | 20 | |
三月 | 17 | |
4 月 | 20 | |
2017 | 1 月 | 19 |
二月 | 20 | |
三月 | 17 | |
4 月 | 20 | |
罗马 | ||
2016 | 1 月 | 19 |
二月 | 20 | |
三月 | 17 | |
4 月 | 20 | |
2017 | 1 月 | 19 |
二月 | 20 | |
三月 | 17 | |
4 月 | 20 |
输出:
城市 | Month/Year | 价值 |
---|---|---|
伦敦 | 2016 年 1 月 | 19 |
伦敦 | 2016 年 2 月 | 20 |
伦敦 | 2016 年 3 月 | 17 |
伦敦 | 2016 年 4 月 | 20 |
伦敦 | 2017 年 1 月 | 19 |
伦敦 | 2017 年 2 月 | 20 |
伦敦 | 2017 年 3 月 | 17 |
伦敦 | 2017 年 4 月 | 20 |
巴黎 | 2016 年 1 月 | 19 |
巴黎 | 2016 年 2 月 | 20 |
巴黎 | 2016 年 3 月 | 17 |
巴黎 | 2016 年 4 月 | 20 |
巴黎 | 2017 年 1 月 | 19 |
巴黎 | 2017 年 2 月 | 20 |
巴黎 | 2017 年 3 月 | 17 |
巴黎 | 2017 年 4 月 | 20 |
罗马 | 2016 年 1 月 | 19 |
罗马 | 2016 年 2 月 | 20 |
罗马 | 2016 年 3 月 | 17 |
罗马 | 2016 年 4 月 | 20 |
罗马 | 2017 年 1 月 | 19 |
罗马 | 2017 年 2 月 | 20 |
罗马 | 2017 年 3 月 | 17 |
罗马 | 2017 年 4 月 | 20 |
这是使用示例数据模式执行此操作的强力方法:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8snPS8nPU9JRAqFYnWglIwNDMyDbKzGvNLGoEsgytASLA1luqUlFUEEjA5igb2JRcgZImTlMxLGgKDMHoQZooDlVDQxILMosHlIuDsrPTR06Do4FAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"City Year" = _t, Month = _t, Value = _t]),
#"Added Custom" = Table.AddColumn(Source, "City", each if [Month] = "" then [City Year] else null, type text),
#"Filled Down" = Table.FillDown(#"Added Custom",{"City"}),
#"Filtered Rows" = Table.SelectRows(#"Filled Down", each ([Month] <> "")),
#"Replaced Value" = Table.ReplaceValue(#"Filtered Rows","",null,Replacer.ReplaceValue,{"City Year"}),
#"Filled Down1" = Table.FillDown(#"Replaced Value",{"City Year"}),
#"Inserted Merged Column" = Table.AddColumn(#"Filled Down1", "Month/Year", each Text.Combine({[Month], [City Year]}, " "), type text),
#"Removed Other Columns" = Table.SelectColumns(#"Inserted Merged Column",{"City", "Month/Year", "Value"})
in
#"Removed Other Columns"