Power Query添加条件列:按国家匹配城市并展开行
Power Query代码修正方案
错误原因分析
原代码存在两处关键问题:
- 列引用错误:用字符串
"Country"直接和国家代码比较,正确做法是用[Country]引用当前行的Country列值 - 多余关键字:then后面的
each会让返回值变成函数而非城市列表,导致无法正常展开为行
修正后的代码
// 读取数据源 Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], #"Changed Type" = Table.TransformColumnTypes(Source,{{"Country", type text}}), // 按国家匹配城市列表 #"Add City" = Table.AddColumn(#"Changed Type", "City", each if [Country] = "US" then {"New York","Seattle","Miami"} else if [Country] = "UK" then {"London","Birmingham"} else {"Tokyo","Osaka"}), // 将城市列表展开为多行 #"Expanded City" = Table.ExpandListColumn(#"Add City", "City") in #"Expanded City"
关键修正说明
- 把
"Country"改为[Country]:正确引用当前行的Country列数据,实现按行判断国家 - 去掉then后面的
each:直接返回城市列表,确保Table.ExpandListColumn能识别并展开成多行
内容的提问来源于stack exchange,提问作者Y H
相关产品推荐
相关产品推荐

