Excel 如何根据表中的一系列值筛选电源查询?

Excel 如何根据表中的一系列值筛选电源查询?,excel,powerquery,Excel,Powerquery,好的,我有一系列的值,每个月都会改变,我希望能够过滤掉这些值中的一个电源查询,但是不能完全正确地得到代码。下面是我用来将表拉入Power Query的代码,从代码下面的图片中可以看到它的工作原理。从代码中可以看出,我在Excel中的表名是Job,而我要过滤的列是Order。第二组代码是我必须尝试从该表中筛选查询的代码,但迄今为止未成功。我粘贴了整个查询代码,但我认为问题出在#“按顺序过滤”这一行。如果您能帮助代码正常工作,我们将不胜感激 let Source = Excel.CurrentWor

好的,我有一系列的值,每个月都会改变,我希望能够过滤掉这些值中的一个电源查询,但是不能完全正确地得到代码。下面是我用来将表拉入Power Query的代码,从代码下面的图片中可以看到它的工作原理。从代码中可以看出,我在Excel中的表名是Job,而我要过滤的列是Order。第二组代码是我必须尝试从该表中筛选查询的代码,但迄今为止未成功。我粘贴了整个查询代码,但我认为问题出在#“按顺序过滤”这一行。如果您能帮助代码正常工作,我们将不胜感激

let
Source = Excel.CurrentWorkbook(){[Name="Job"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Order", type text}})
in
#"Changed Type"

let
Source=Sql.Database(“jansql01”、“mas500_应用程序”),
dbo_vdvInvoiceLine=Source{[Schema=“dbo”,Item=“vdvInvoiceLine”]}[Data],
#“已删除的其他列”=表。选择列(dbo_vdvInvoiceLine、{“说明”、“项目ID”、“StatxClassID”、“ExtAmt”、“运费金额”、“TranID”、“TradeDiscAmt”、“格式化Glacctno”、“段1”、“段2”、“段3”、“销售订单”、“客户ID”、“客户名称”、“TranDate”、“PostDate”、“城市”、“州ID”、“项目ClassID”、“ReleaseSO”、“作业编号”}),
#“按顺序筛选”=表。选择行(#“删除其他列”,每个表。包含(订单,[SalesOrder=[Order]]),
#“Added Material Column”=Table.AddColumn(#“按订单过滤”、“Material$”,如果每个[ItemClassID]“INSTALLATION”,则为[ExtAmt]否则为0),
#“添加的安装列”=Table.AddColumn(#“添加的材料列”、“安装$”,如果[ItemClassID]=“安装”,则[ExtAmt]否则为0),
#“合并查询”=表.NestedJoin(#“添加的安装列”、{“TranID”}、vdvInvoice、{“TranID”}、vdvInvoice、JoinKind.LeftOuter),
#“Expanded vdvInvoice”=Table.ExpandTableColumn(#“合并查询”、“vdvInvoice”、{“STaxAmt”}、{“vdvInvoice.STaxAmt”}),
#“提取日期”=表.TransformColumns(#“扩展的vdvInvoice”、{{{“TranDate”、DateTime.Date、键入Date}、{“PostDate”、DateTime.Date、键入Date}),
#“添加的发票+税费”=Table.AddColumn(#“提取日期”、“发票+税费”、每个[TranID]和Number.ToText([vdvInvoice.STaxAmt]),
#“已排序发票+税”=表.Sort(#“已添加发票+税”,{{{“发票+税”,Order.升序}),
#“添加的索引”=表AddIndexColumn(#“已排序发票+税务”,“索引”,0,1),
#“添加的自定义”=Table.AddColumn(#“添加的索引”、“发票+税务2”,如果[索引]=0,则为[#“发票+税务”],否则如果#“添加的索引”{[索引]-1}[#“发票+税务”]=[#“发票+税务”]则为空,否则为[#“发票+税务”]),
#“Removed Columns”=Table.RemoveColumns(#“Added Custom”,{“Index”}),
#“增值税列”=Table.AddColumn(#“已删除列”、“税$”,如果[#“发票+Tax2”]=null,则为0其他[vdvInvoice.STaxAmt]),
#“更改的税收类型”=表.TransformColumnTypes(#“增值税列”,{{{“税收$”,类型编号}}),
#“添加的总合同”=Table.AddColumn(#“更改的税收类型”、“总合同$”,每个[#“材料$”]+[FreightAmt]+[#“安装$”]+[#“税收$”]))
在里面
#“新增总合同”

合并这两个查询。“合并”命令中有一些设置,您可以单击这些设置仅保留匹配的行。

合并这两个查询。“合并”命令中有一些设置,您可以单击以仅保留匹配的行。

teylyn的答案是一种很好的可行方法

另一种方法是将作业表的订单号作为列表传递到第二个查询中的筛选器参数中:

Orderlist = Job[Order]
.
.
.
#"Filtered by Order" = Table.SelectRows(#"Removed Other Columns", each List.Contains(Orderlist,[SalesOrder])),

teylyn的答案是一个好的、可行的方法

另一种方法是将作业表的订单号作为列表传递到第二个查询中的筛选器参数中:

Orderlist = Job[Order]
.
.
.
#"Filtered by Order" = Table.SelectRows(#"Removed Other Columns", each List.Contains(Orderlist,[SalesOrder])),

你的解释不太清楚。您似乎有两个查询,并且希望过滤第二个查询,以便只保留第一个查询中存在订单号的行。你能确认吗?我根据Excel中的表格创建了第一个查询,这样查询/表格每个月都会更改。但是,是的,我只想保留订单号出现在第一个查询中的行。对不起,弄糊涂了。你的解释不太清楚。您似乎有两个查询,并且希望过滤第二个查询,以便只保留第一个查询中存在订单号的行。你能确认吗?我根据Excel中的表格创建了第一个查询,这样查询/表格每个月都会更改。但是,是的,我只想保留订单号出现在第一个查询中的行。很抱歉造成混淆。嗯,我没有考虑合并查询,因为我确实将表创建为自己的查询,这可能会起作用。我得试一试。谢谢对不起,我最近工作忙得不可开交,还没有机会测试一下。一旦有机会,我一定会告诉你的。“应该是下周。”杰米沃克告诉我你进展如何。使用Power Query,在某些情况下,您需要改变您的范例。这种情况就是其中之一。您只需将外部表与当前表合并,并仅保留符合条件的行,而不是将外部表作为筛选器的源引用。这些条件是在合并选项中定义的。嗯,我没有考虑合并查询,因为我确实将表合并到自己的查询中,这可能会起作用。我得试一试。谢谢对不起,我最近工作忙得不可开交,还没有机会测试一下。一旦有机会,我一定会告诉你的。“应该是下周。”杰米沃克告诉我你进展如何。使用Power Query,在某些情况下,您需要改变您的范例。这种情况就是其中之一。您只需将外部表与当前表合并,并仅保留符合条件的行,而不是将外部表作为筛选器的源引用。标准在合并选项中定义。