背景
我有一个 Power Query,它将同一目录中具有相同表名的多个 Excel 工作簿合并到单个表中,然后我将使用该表作为数据透视表的源数据。或者至少我这样做了...
问题
问题是,某些文件的命名表进行了修订,并添加了一个新列。基本上,这是一个不断变化的混合数据文件。我需要将该列添加到缺少它的文件中。
我尝试过
我花了大量时间用谷歌搜索,终于找到了一个我能理解的 YouTube 视频。它基本上说添加一个IF
语句来检查列是否存在。如果存在,则返回原始表。否则添加该列。
我的 M 代码目前
let
Source = Excel.Workbook(Parameter1, null, true),
Forecast_Table_Table = Source{[Item="Forecast_Table",Kind="Table"]}[Data],
#"Added Custom1" = Table.AddColumn(Forecast_Table_Table, "Missing", each if Table.HasColumns(Navigation,"LOS") then Navigation else Table.Combine({Navigation, Table.FromRows({},{"LOS"})})),
#"Added Custom" = Table.AddColumn(#"Added Custom1", "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"
这是我尝试添加 if 语句的地方,就像他们在视频中做的那样
但是当我选择该步骤时,它显示此错误:
问题
我该如何修复我的IF
语句以便它添加一个名为“LOS”的列(如果尚不存在)。
更新
我应用的步骤列表如下,绿色步骤是我添加IF
语句的地方
不确定您期望的输出是什么,但您的问题是,虽然您的应用步骤是
Navigation
,但这并不是上一步的实际名称。(问 MS 为什么)。在 M-Code 中,添加此步骤:(假设您想要一个名为
LOS
空内容的列)如果您希望该栏目中有其他内容,请提供一个示例。