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]

レビューやテストなどの中間ステップも明確になります。

関連情報