Условный динамический фильтр 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]

Промежуточный этап также будет более понятным для обзора/тестирования и т. д.

Связанный контент