Bedingter dynamischer Filter in Power Query

Bedingter dynamischer Filter in Power Query

Ich habe eine Power Query-Abfrage, die eine sekundäre Funktionsabfrage verwendet, die Parameter aus einer Tabelle in meiner Arbeitsmappe zieht. Um beispielsweise nach Datumsbereich zu filtern, verwende ich

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

Ich möchte nur filtern, wenn ein von fnGetParameterValue("AccountNumber") zurückgegebener Wert keine leere Zeichenfolge ist.

Ich habe versucht, diesen Schritt nach dem Datumsfilterschritt einzufügen:

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

Es liegt anscheinend kein Syntaxfehler vor, aber ich bekomme keine Daten zurück.

Wie kann ich Daten bedingt filtern?

Antwort1

Ich würde einen Zwischenschritt zum Hinzufügen einer Spalte mithilfe Ihrer Funktion (z. B. [AccountNumber Filter]) und unter Verwendung Ihrer if-Logik hinzufügen, etwa wie folgt:

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

Dann würde ich diese neue Spalte im Filterschritt verwenden, z. B.

[AccountNumber] = [AccountNumber Filter]

Auch der Zwischenschritt wird für die Überprüfung/Prüfung usw. klarer.

verwandte Informationen