是否有办法根据给定的值
控制过滤器在查询中选择值让我们说, 我有以下电源查询,数据如下所示
country type value1 value2....
----------------------------------------------------------------------
USA a1 22 12
Uk a2 21 10
现在在电源查询中,我手动过滤这些值,使其像country =“USA”,type =“a1”来获取数据透视表。
如何使用电源查询中的用户输入自动过滤值?
用户输入:
country: [textbox] or workbook cell
type : [textbox] or workbook cell
非常感谢帮助,谢谢!
PS:我的工作查询如下所示,
let
Source = Csv.Document(File.Contents("C:\Users\axlptl\Desktop\abc.csv"),[Delimiter=",", Columns=4, Encoding=1252, QuoteStyle=QuoteStyle.None]),
UserInput = Excel.CurrentWorkbook(){[Name="Table1"]}[Content][country]{0},
#"Promoted Headers" = Table.PromoteHeaders(Source),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"country", type text}, {"type", type text}, {"value1", Int64.Type}, {"value2", Int64.Type}}),
#"Filtered Rows" = Table.SelectRows(#"Changed Type", each ([type] = UserInput))
in
#"Filtered Rows"
答案 0 :(得分:1)
尝试将22
放入工作簿单元格(可能在另一张表格中)并从表格中选择。基本上,这样做:JSFiddle Demo
您希望查询的行类似于:
UserInput = Excel.CurrentWorkbook(){[Name="Table1"]}[Content][country]{0},
答案 1 :(得分:0)
您应该为包含Country和Type参数的单元格创建名称。 假设,单元格B1是国家,B2是类型。转到公式/名称管理器并为它们分配相应的名称。
然后(假设您的数据表名为Table1),您可以使用以下PowerQuery:
let
Country = Excel.CurrentWorkbook(){[Name="Country"]}[Content][Column1]{0}?,
Type = Excel.CurrentWorkbook(){[Name="type"]}[Content][Column1]{0}?,
Table = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
Filter = Table.SelectRows(Table, each [country] = Country and [type] = Type)
in
Filter
还要注意名称,它们区分大小写。