Excel 如何用变量替换Power Query中的列名以筛选行?

Excel 如何用变量替换Power Query中的列名以筛选行?,excel,powerquery,Excel,Powerquery,在使用Excel Power query开发的查询中,我想在筛选列表行时用变量替换表列名。不幸的是,我要么收到一条错误消息,例如表达式错误:未找到表的第xx列,要么在筛选后没有剩余的行,即使它应该这样做。 在下面的示例中,变量Filter=column name设置为column B,并在步骤Filter Rows中用于筛选包含“1”的行。但结果是不显示任何行。 你知道原因是什么,怎么解决吗?也许变量需要有一个特殊的数据类型 提前谢谢 表: 代码: Filter是值B,因此条件总是返回fals

在使用Excel Power query开发的查询中,我想在筛选列表行时用变量替换表列名。不幸的是,我要么收到一条错误消息,例如表达式错误:未找到表的第xx列,要么在筛选后没有剩余的行,即使它应该这样做。 在下面的示例中,变量Filter=column name设置为column B,并在步骤Filter Rows中用于筛选包含“1”的行。但结果是不显示任何行。 你知道原因是什么,怎么解决吗?也许变量需要有一个特殊的数据类型

提前谢谢

表:

代码:

Filter是值B,因此条件总是返回false。Table.SelectRows的第二个参数采用一个函数,该函数将表的当前行作为记录传入。可以执行以下任一操作以使用变量指定列:

=Table.SelectRowsChanged类型,每个Text.ContainsRecord.Field,过滤器,1

=Table.SelectRowsChanged类型,x=>Text.ContainsRecord.Fieldx,过滤器,1

在这些情况下,每个和都与x=>和x相同。Record.Field\过滤器获取过滤器引用的列在当前行中的值

let
  #"Filter" = "B",
  Source = Excel.CurrentWorkbook(){[Name="Tabelle2"]}[Content],
  #"Changed Type" = Table.TransformColumnTypes(Source,{{"A", Int64.Type}, {"B", Int64.Type}}),
  #"Changed Type1" = Table.TransformColumnTypes(#"Changed Type",{{#"Filter", type text}}),
  #"Filtered Rows" = Table.SelectRows(#"Changed Type1", each Text.Contains(#"Filter", "1"))
in
  #"Filtered Rows"