我昨天发现并开始使用Power Query。我编写了一些查询来填充三个下拉列表,第二个和第三个依赖于第一个列表中选择的内容,第三个则进一步依赖于第二个列表中选择的内容。
当我在这些列表中创建可能项目的列表时,我会在每个列表的顶部添加一条All记录,作为查询的一部分。我在填充第二个列表时使用了if语句
如果用户在第一个框中选择了“全部”,请转到“获取所有记录”,否则将返回特定列中的值等于在第一个列表中选择的值的记录
.
然而,由于第三个列表需要检查第一个和第二个列表框中是否都选择了All,因此我认为需要执行两个if语句。昨天下午,我在互联网上搜索了一个两个嵌套if语句的示例,但成功率有限。每当我自己尝试这样做时,就会出现各种语法错误,比如我缺少一个标记Eof或token then,或者缺少一个逗号等等。
有谁能给我举一个简单的例子,说明如何布置嵌套的if语句吗?
非常感谢。
更新:
谢谢你的回答。我仍然有真正的问题。这是我的查询,目前有效。
if Wholesaler_Cmbo_Lnkd_Cell <> "All wholesalers" then
let
Source = Table.SelectRows(Query_GSR, each [Wholesaler number] = Wholesaler_Cmbo_Lnkd_Cell),
#"GroupedSource" = Table.Group(Source, {"Month_Name", "Year_No", "Item Category", "Item Category Type", "Tariff status", "Weekday","Transaction type","Group number","Customer account number"}, {{"Gross sales", each List.Sum([Gross sales])},
{"Rebates", each List.Sum([Rebates])},
{"Net sales", each List.Sum([Net sales])},
{"Direct materials", each List.Sum([Direct materials])},
{"Packaging", each List.Sum([Packaging])},
{"Lab consumables", each List.Sum([Lab consumables])},
{"QC costs", each List.Sum([QC costs])},
{"Stock adjustments", each List.Sum([Stock adjustments])},
{"Product margin", each List.Sum([Product margin])},
{"Gross profit", each List.Sum([Gross profit])},
{"Carriage income", each List.Sum([Carriage income])},
{"Carriage expense", each List.Sum([Carriage expense])},
{"Orders", each List.Count([ID])}})
in
#"GroupedSource"
else
let
Source = Query_GSR,
#"GroupedSource" = Table.Group(Source, {"Month_Name", "Year_No", "Item Category", "Item Category Type", "Tariff status", "Weekday", "Transaction type", "Group number", "Customer account number"}, {{"Gross sales", each List.Sum([Gross sales])},
{"Rebates", each List.Sum([Rebates])},
{"Net sales", each List.Sum([Net sales])},
{"Direct materials", each List.Sum([Direct materials])},
{"Packaging", each List.Sum([Packaging])},
{"Lab consumables", each List.Sum([Lab consumables])},
{"QC costs", each List.Sum([QC costs])},
{"Stock adjustments", each List.Sum([Stock adjustments])},
{"Product margin", each List.Sum([Product margin])},
{"Gross profit", each List.Sum([Gross profit])},
{"Carriage income", each List.Sum([Carriage income])},
{"Carriage expense", each List.Sum([Carriage expense])},
{"Orders", each List.Count([ID])}})
in
#"GroupedSource"
我知道我的布局很糟糕,需要改进。我宁愿它看起来像这样:
if Wholesaler_Cmbo_Lnkd_Cell <> "All wholesalers" then
let
Source = Table.SelectRows(Query_GSR, each [Wholesaler number] = Wholesaler_Cmbo_Lnkd_Cell)
in
Source
else
let
Source = Query_GSR
in
Source
let
#"GroupedSource" = Table.Group(Source, {"Month_Name", "Year_No", "Item Category", "Item Category Type", "Tariff status", "Weekday", "Transaction type", "Group number", "Customer account number"}, {{"Gross sales", each List.Sum([Gross sales])},
{"Rebates", each List.Sum([Rebates])},
{"Net sales", each List.Sum([Net sales])},
{"Direct materials", each List.Sum([Direct materials])},
{"Packaging", each List.Sum([Packaging])},
{"Lab consumables", each List.Sum([Lab consumables])},
{"QC costs", each List.Sum([QC costs])},
{"Stock adjustments", each List.Sum([Stock adjustments])},
{"Product margin", each List.Sum([Product margin])},
{"Gross profit", each List.Sum([Gross profit])},
{"Carriage income", each List.Sum([Carriage income])},
{"Carriage expense", each List.Sum([Carriage expense])},
{"Orders", each List.Count([ID])}})
in
#"GroupedSource"
它说需要一个标记Eof,当我试图将整个内容包装在另一个“let”和“in”中时,它说第一个#“GroupedSource”上需要一个标记逗号。我尝试了各种额外的“in”和“let”包含,但很明显,我对“let”、“in”以及为“variables”指定答案的工作方式缺乏基本的理解。
你知道我做错了什么吗?