如何将缺失的列添加到转换示例文件中

问题描述 投票:0回答:1

背景

我有一个 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 语句的地方,就像他们在视频中所做的那样

enter image description here

但是,当我选择该步骤时,它显示此错误:

enter image description here

问题

如何修复我的

IF
语句,以便添加名为“LOS”的列(如果该列尚不存在)。

更新

我的应用步骤列表如下,绿色步骤是我添加

IF
语句

enter image description here

excel powerquery m excel-365
1个回答
0
投票

不确定您期望的输出是什么,但您的问题是,尽管您的应用步骤是

Navigation
,但这并不是上一步的真正名称。 (问MS为什么)。

在 M 代码中,添加此步骤:(假设您想要一个名为

LOS
且内容为空的列

#"Add LOS" = if Table.HasColumns(Forecast_Table_Table,{"LOS"}) then Forecast_Table_Table
        else Table.Combine({Forecast_Table_Table,#table({"LOS"},{})})

如果您想在该栏中了解其他内容,请提供示例。

© www.soinside.com 2019 - 2024. All rights reserved.