【发布时间】:2018-01-30 07:37:44
【问题描述】:
我昨天发现并开始使用 Power Query。我编写了一些查询来填充三个下拉列表,第二个和第三个取决于第一个中选择的内容,第三个则进一步取决于第二个中选择的内容。
当我在这些列表中创建可能项目的列表时,我会在每个列表的顶部添加一个“全部”记录,作为我查询的一部分。我在填充第二个列表时使用了 if 语句第一个列表。
但是,由于第三个列表需要检查是否在第一个和第二个列表框中都选择了“全部”,我相信我需要做两个 if 语句。我昨天整个下午都在互联网上搜索,以找到两个嵌套 if 语句的示例,但成功率有限,每当我自己尝试这样做时,我都会遇到各种语法错误,我缺少一个令牌 Eof 或令牌 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”以及如何为“变量”分配答案的工作原理缺乏基本的理解。
你知道我做错了什么吗?
【问题讨论】:
标签: excel-2013 powerquery