Power Query 条件动态过滤器

Power Query 条件动态过滤器

我有一个 Power Query 查询,它使用辅助函数查询从工作簿中的表中提取参数。例如,要按日期范围进行筛选,我使用

#"Filtered Rows" = Table.SelectRows(#"Added Custom", each [EventDatetime] >= fnGetParameterValue("EventStartDate") and [EventDatetime] <= fnGetParameterValue("EventEndDate"))

我想要做的是仅当 fnGetParameterValue("AccountNumber") 返回的值不是空字符串时才进行过滤。

我尝试在日期过滤步骤之后插入此步骤:

#"Filtered Rows1" = if fnGetParameterValue("AccountNumber") = "" then #"Filtered Rows" else Table.SelectRows(#"Filtered Rows", each [AccountNumber] = fnGetParameterValue("AccountNumber"))

我似乎没有遇到语法错误,但我没有得到任何数据。

如何有条件地过滤数据?

答案1

我将使用您的函数(例如 [AccountNumber Filter] )并使用您的 if 逻辑添加一个中间步骤来添加一列,如下所示:

if fnGetParameterValue("AccountNumber") = "" then [AccountNumber] else fnGetParameterValue("AccountNumber")

然后我将在过滤步骤中使用该新列,例如

[AccountNumber] = [AccountNumber Filter]

中间步骤也将更加清晰,以便于审查/测试等。

相关内容