如何使用Power Query过滤一个范围的列?

我想通过一系列值过滤Power Query列。 我发现我可以手动select或取消select列中的值,但是我需要自动删除表单中已有值的范围。

假设我正在查询的表格包含100个唯一的名称。 我只想导入与我的工作表中的20个名称相匹配的行。

我如何用Power Query来做到这一点?

编辑:我可以做一个excel函数来连接一个名称列表为查询所需的格式,如下所示: (= Table.SelectRows(#"Changed Type", each ([Ticket Assignee] ="Name 1" or [Ticket Assignee] ="Name 2"))) 。 但是仍然需要从查询中引用这个方法。

EDIT2:

我的查询:

这个错误与:

Expression.Error:我们期望一个FieldsSelector的值。

 let names_Source = Excel.CurrentWorkbook(){[Name="namesTable"]}[Content], names_Values = names_Source{1}, Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], #"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type datetime}, {"Ticket Assignee", type text}, {"# Solved", Int64.Type}}), #"Filtered Rows" = Table.SelectRows(#"Changed Type", each ([Ticket Assignee] <> null)), #"Filtered Rows1" = Table.SelectRows(#"Changed Type", each Record.HasFields(names_Values, [Ticket Assignee])) in #"Filtered Rows1" 

编辑3 :修改的查询:

Expression.Error:我们不能将null值转换为Recordtypes。 详细信息:值=types=types

 let names_Source = Excel.CurrentWorkbook(){[Name="namesTable"]}[Content], names_Values = Record.FromList(names_Source[Zendesk Name], names_Source[Zendesk Name]), Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], #"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type datetime}, {"Ticket Assignee", type text}, {"# Solved", Int64.Type}}), #"Filtered Rows" = Table.SelectRows(#"Changed Type", each ([Ticket Assignee] <> null)), #"Filtered Rows1" = Table.SelectRows(#"Filtered Rows", each Record.HasFields(names_Values, [Ticket Assignee])) in #"Filtered Rows1" 

编辑4 :我的表具有空值错误为空。 我添加了一行来从我的名字源中过滤出空值

如果要检查的项目列表位于Excel工作表中,则可以使用“从表”导入表并使用List.Contains查看您的值是否在该表中。 如果工作表在WorksheetQuery中,并且名称位于列名称中,那么您的步骤如下所示:

= Table.SelectRows(PreviousStep, each List.Contains(WorksheetQuery[Names], [Ticket Assignee]))

如果结果太慢,可以尝试将列转换为logging,然后使用Record.HasFields

为什么不使用连接操作? 这似乎是起作用,至less不慢,但在我心中更清楚:

 let names_Source = Excel.CurrentWorkbook(){[Name="namesTable"]}[Content], Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], Joind = Table.NestedJoin(Source,{"Ticket Assignee"},names_Source,{"Zendesk Name"},"NewColumn",JoinKind.RightOuter), Filtered = Table.RemoveColumns(Joind,{"NewColumn"}) in Filtered