У меня есть запрос 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]
Промежуточный этап также будет более понятным для обзора/тестирования и т. д.