我在 Excel for Microsoft 365 中使用 Power Query。
请考虑以下 M 语言代码:
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type of all to Text" = Table.TransformColumnTypes(Source,{{"A", type text}, {"B", type text}, {"C", type text}}),
#"Removed Unneeded Columns" = Table.RemoveColumns(#"Changed Type of all to Text",{"A"}),
...
in
#"Removed Duplicate Rows"
我遇到的问题是A列并不总是出现在源表中。如果存在,则必须将其移除。但是,如果将其包含在 M 语言代码中,则在它不存在的情况下会导致错误。
如何更改我的 M 语言代码以有效处理A列存在的情况和A列不存在的情况?
原问题的重述
解决方案
作为初步准备,我会注意到,当我第一次通过右键单击源表中的单元格然后选择 来创建查询时,会自动
Get Data from Table/Range...
创建两个应用的步骤:我的问题的解决方案如下:
Choose Columns
步骤之间插入应用步骤,并取消选择A列(如果存在)(我可能会也可能不会使用其中包含A列的源表实例)Source
Changed Type
Changed Type
列对应的参数(如果存在)(我可能会或可能不会使用其中包含A列的源表的实例)关键是在M语言代码中不要引用A列(因为如果引用了A列但不存在则会抛出错误)。因此,与其显式选择A列进行删除,不如不选择将其包含在内。
以这种方式构建查询允许将其应用于包含或不包含A列的源表。它在两种情况下都有效。