如何修复Power Query中添加缺失LOS列的IF语句?
修复Power Query中添加缺失LOS列的M代码
问题根源
你的代码存在三个核心问题:
- 引用了未定义的
Navigation变量,当前需要处理的目标表是Forecast_Table_Table - 错误新增了
Missing列,正确逻辑应该直接修改原表结构,而非新增列 - 使用
Table.Combine添加列的方式错误,该函数用于合并表,而非给现有表添加空值列
修正后的M代码
let Source = Excel.Workbook(Parameter1, null, true), Forecast_Table_Table = Source{[Item="Forecast_Table",Kind="Table"]}[Data], // 判断并添加LOS列:如果已有则保留原表,否则添加空值的LOS列 #"Added LOS Column" = if Table.HasColumns(Forecast_Table_Table, "LOS") then Forecast_Table_Table else Table.AddColumn(Forecast_Table_Table, "LOS", each null), #"Added Custom" = Table.AddColumn(#"Added LOS Column", "Custom", each [Project No]&[Task No]&[Office]&[Staff]), #"Filtered Rows" = Table.SelectRows(#"Added Custom", each [Custom] <> null and [Custom] <> ""), #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Custom"}) in #"Removed Columns"
代码说明
- 替换原错误的
#"Added Custom1"步骤为#"Added LOS Column",直接对目标表进行判断和列添加操作 - 使用
Table.AddColumn给缺失LOS列的表添加值为null的列,确保表结构统一 - 后续的自定义列、过滤和删除列步骤保持原有逻辑不变
内容的提问来源于stack exchange,提问作者Forward Ed
相关产品推荐
相关产品推荐

