次の方法で共有


値フィルターの動作を操作する (プレビュー)

Power BI の値フィルター動作オプションを使用すると、同じテーブルの複数の列がフィルター処理されるときに発生する DAX に存在する自動フィルター処理メカニズムに影響を与えます。 この動作は、非公式に "auto-exist" と呼ばれます。

値フィルターの動作とは

同じテーブルの複数の列がフィルター処理されると、DAX は、これらの列間のすべての値の組み合わせが有効であるとは限らない可能性があることを認識し、その結果、無効な組み合わせを自動的に除外します。 DAX エンジンは、有効な組み合わせを返すだけでなく、測定された計算にも影響を与える合体値フィルターを生成しました。 値フィルターの動作設定を使用すると、セマンティック モデルでこの動作を変更できます。 結合された値フィルターをオフにして、代わりに独立した値フィルターを有効にするかどうかを決定できます。 値フィルターの動作設定を独立 (この記事の後半を参照) に設定することで、独立した値フィルターを有効にすると、DAX エンジンがこれらのフィルターを 1 つに結合する代わりに、同じテーブル上の複数のフィルターが個別に保持されます。

値フィルターの動作について

同じテーブルで複数の列をフィルター処理する場合、現在の既定値のフィルター動作では、これらのフィルターが使用され、存在する組み合わせのみを考慮して 1 つに結合されます。 同じテーブルの次の 2 つの列について考えてみます。

  • "2023" のような値を含む Year。
  • Month。"January 2024" などの値が含まれています。

Year と Month の両方でフィルター処理する場合、これらの列は同じテーブル上に存在するため、値フィルターの動作によってフィルターが 1 つに結合されますが、存在する組み合わせのみが考慮されます。 2024 年 1 月と 2023 年の組み合わせは存在せず、フィルターには含まれません。 しかし、結果が驚くべき状況があります。

例を見てみましょう。ここでは、年ごとの製品の色の可用性を示すカタログがあります。 これらの製品のメーカーは、長年にわたってさまざまな色の製品を作ることを実験しました。

2022 年から 2024 年までの製品の色を示す表のスクリーンショット。

長年にわたり様々な色を取り揃えた3つの製品を取り揃えています。 2024 年に赤い製品が提供されていないことに注目してください。 これは少し後で重要になります。 次に、次のメジャーを追加して、製品の数をカウントしてみましょう。

Number of Products = COUNTROWS( 'Catalog' )`

次のマトリックスは、1 年にさまざまな色で使用できる製品の数を示しています。 年と色別の製品数を示すマトリックスのスクリーンショット。

次に、別のメジャーを追加して、すべての年の製品の合計数を計算してみましょう。

Number of Products All Years = CALCULATE ( [Number of Products], ALL ( 'Catalog'[Year] ) )

これらのメジャーを並べて配置し、2023 年にフィルター処理し、青と赤の色のみを適用してみましょう (そのため、黒はありません)。 製品の数が 4 で、これらの 2 色のすべての年の製品の数が 6 であることがわかります。

年、製品、色を示すテーブルのスクリーンショット。スライサーは 2 つあり、1 つは Year に 2023 に設定され、1 つは Color が Blue と Red に設定されています。Number of Products メジャーは 4 を返し、Number of Products All Years メジャーは 6 を返します。

Year を 2024 に切り替えると、2024 年には青色の製品が 2 つしかなく、その年には赤い製品がないため、"Number of Products" メジャーは 2 を返すと予想されます。 その上、すべての年の製品数は変わらないと予想されます。結局のところ、それはすべての年にわたって計算されることになっているからです。 ただし、"すべての年の製品数" は 6 から 5 に変わります。

年、製品、色を示すテーブルのスクリーンショット。スライサーは 2 つあり、1 つは Year に 2024 に設定され、1 つは Color が Blue と Red に設定されています。Number of Products メジャーは 2 を返し、Number of Products All Years メジャーは 5 を返します。

すべての年の製品数は、5 ではなく 6 である必要があります。 ここで見ているのは、実際の値フィルターの動作です。これは同じテーブルのフィルターを組み合わせ、存在しなかった組み合わせを削除しています。 フィルターは Year = 2024、Color = Blue または Red です。 これら 2 つのフィルターは同じテーブル上に存在するため、これらのフィルターは、存在する組み合わせに対してのみフィルターを適用する 1 つのフィルターに結合されます。 2024 年には赤い製品がないため、適用されるフィルターは Year = 2024、Color = Blue です。 したがって、すべての年の製品数は、青または赤の製品ではなく、青色の製品の数のみをカウントするようになりました。 テーブルで確認できるように、5 が返されます。

値フィルターの動作に影響を与える

この動作をセマンティック モデルで使用するかどうかを制御するには、モデル ビューのプロパティ ウィンドウでセマンティック モデルの Value フィルター動作 設定を使用します。

モデル ビューのプロパティ ペインのスクリーンショット。値フィルターの動作オプションが強調表示されています。

3 つのオプションを使用できます。

  • 自動 - これは既定の設定であり、現在、結合された動作をオンにします。 このプレビューをまとめると、 Automatic に設定された新しいモデルが独立して使用されます。その時点で発表されます。
  • 独立 - 同じテーブルのフィルターを強制的に分離します。 [値フィルターの動作] 設定を Independent に設定すると、すべての年の製品の合計数は予想どおり 6 を返します (下記参照)。
  • 結合 - これにより、セマンティック モデルに対して値フィルターの動作が強制的に有効になり、同じテーブルのフィルターが 1 つに結合されます。 この例のすべての年の製品数は 5 に戻り続けます。

次の表は、この設定がこの例に与える影響を示しています。

値フィルター動作の設定 この例で適用されたフィルター 例の測定結果
自動 Year = 2024,
色 = 青
5
無所属 Year = 2024,
色 = 青または赤
6
結合 Year = 2024,
色 = 青
5

Value フィルターの動作自動に設定すると、現時点では結合と同じですが、将来新しいセマンティック モデルでは独立に切り替わります。 Value フィルターの動作を [独立] に設定した場合フィルターは Year = 2024、Color = Blue または Red であり、組み合わされなくなったため、期待どおりにすべての製品の製品数は 6 を返します。

年、製品、色を示すテーブルのスクリーンショット。スライサーは 2 つあり、1 つは Year に 2024 に設定され、1 つは Color が Blue と Red に設定されています。Number of Products メジャーは 2 を返し、Number of Products All Years メジャーは 6 を返します。

次のステップ

次の記事が役立つ場合があります。