PowerBIでスライサーを設定したものの、ここはフィルターをかけたくない!って場面ありますよね。 そんな時に便利なのがALL関数です。また、逆にフィルターをかけたまま計算をさせたい場合はALLSELECTED関数を使います!
本日は
・ALL関数まとめ(ALL/ALLSELECTED)
・ALL関数を用いてスライサーのフィルター条件を解除
・ALLSELECTED関数でフィルターの条件で計算
PowerBIではスライサーとセットでALL、ALLSELECTED関数を使う場面は多いので、ぜひご参考下さい!
ALL関数まとめ(ALL/ALLSELECTED関数)
PowerBIのDAX関数であるALL関数系は主に下記の3種類です。
「ALL関数」「ALLSELECTED関数」「ALLEXCEPT関数」を使います。
【ALL関数】構文
=ALL(テーブル,列)
フィルターをかけたくないテーブルまたは列を指定
全てのフィルター設定を無視!
スライサーの影響を受けずに計算できる!
【ALLSELECTED関数】構文
=ALLSELECTED(テーブル,列)
スライサーで設定している列などを入れる
指定した列”のみ”のフィルター設定を無視!
スライサーの影響を受ける状態で計算できる!
参考:Microsoft Docs ALLSELECTED関数
【ALLEXCEPT関数】構文
=ALLEXCEPT(テーブル,列)
指定した列”以外”の全てのフィルターを無視!
つまり、
・スライサーに関係なく全てのフィルターを解除したい場合はALL関数
・指定した条件のみフィルターを無視したい場合はALLSELECTED関数
・ALLEXCEPT関数はALLSELECTED関数と逆条件
です。
それでは、具体的に使い方を紹介します。
ALL関数で全てのフィルターを解除
ALL関数を使えば、スライサーの影響を受けずに計算させることができます。
今回は地域別のスライサーを追加した後に、
売上合計を地域スライサーの影響を無視した状態で表示していきます!
◆使用するデータ
下記のような製品別の売上リストをPowerBIに取り込んでいる場合を想定します。
製品/性別/地域/年齢/売上がのったデータになります。

まずはこのデータからレポート画面にテーブル表とスライサーを追加していきます。方法は下記の関連記事をご参考下さい☟
【関連記事】
▶PowerBIのテーブル表の作成と条件付き書式の設定
▶Power BIでスライサー/フィルター機能の追加
テーブル表は下記の通り、テーブルを追加しフィールドから「地域」、「売上」を値に追加した表を作成しました。

続いて、スライサーは、地域別にフィルターがかけれるように設定しました。

◆ALL関数でフィルターを解除した売上合計をテーブルに追加
今回はスライサーの影響を受けない売上合計を計算したいため、CALCULATE関数を用います。
【関連記事】
PowerBIのDAXで超重要なCALCULATE関数の説明は下記記事をご参考下さい!☟
▶CALCULATE関数で条件付きの合計や平均(DAX関数)
それでは、ALL関数でメジャーを追加していきます。

メジャー名:売上ALL
関数:CALCULATE関数、ALL関数
=CALCULATE(式,フィルター)
=ALL(列)
CALCULATE関数の”フィルター”の部分にALL関数を入れ込めばOK!
つまり、
売上ALL = CALCULATE(SUM('購入リスト'[売上]),ALL('購入リスト'[地域]))

ALL関数で地域列を指定しているので、スライサーで地域をフィルターしても影響受けずに合計できる!
実際にレポート画面でテーブルに作成したメジャー「売上ALL」を追加して確認します。

地域スライサーの選択を変えても、売上ALLで追加した値は変わってないですね!

ALL関数を使えばスライサーの影響をうけない状況、つまり「フィルターを解除した計算」ができます!
フィルターやスライサーを設定したせいで、合計が合わない場合にもALL関数を設定してみて下さい!
ALLSELECTED関数で選択列のみフィルターを無視
ALL関数では、選択を外しても全ての売上合計が表示されました。ALLSELECTED関数を使えば、選択したものだけのフィルター設定を無視した計算ができます。
同様にメジャーを追加し、ALLSELECTED関数で計算式を指定します。
メジャー名:売上ALLSELECTED
関数:CALCULATE関数、ALLSELECTED関数
=CALCULATE(式,フィルター)
=ALLSELECTED(列)
CALCULATE関数の”フィルター”にALLSELECTED関数を入れたらOK!
つまり、
売上ALLSELECTED = CALCULATE(SUM('購入リスト'[売上]),ALLSELECTED('購入リスト'[地域]))

ALLSELECTED関数で地域列を指定すれば、スライサーの影響受けた状態での合計が計算できます!
実際にレポート画面でテーブルに作成したメジャー「売上ALLSELECTED」を追加して確認します。

地域スライサーの選択を変えると、値が変わっています!売上ALLで追加した値は変わってないですが、売上ALLSELECTEDで追加した値は選択した合計のみになっています!

こちらはスライサーの選択したものだけの合計が表示されていますね! つまり、ALLSELECTED関数を使えば「スライサーの影響を受ける状態で計算」ができる!
ちなみに、ALL関数、ALLSELECTED関数で追加したメジャーを使って、売上割合を計算させると下の図の通りになります。ALL関数はフィルターに影響しない全体の売上合計の割合、ALLSELECTED関数はフィルターに影響した状態なので割合の合計が100%になってることが分かります!
※DIVIDE関数で「売上÷売上ALL」「売上÷売上ALLSELECTED」をしています。

【関連記事】
【Power BI】DAX関数で割り算(DIVIDE関数)
【PowerBI】パレート図の作成
【PowerBI】RANKX関数(ALLSELECTED関数でフィルターを設定した順位付け)
ALL関数、ALLSELECTED関数まとめ
今回のまとめ
・スライサーの影響をうけない計算をしたい場合はALL関数
・スライサーで選択した条件の計算をしたい場合はALLSELECTED関数
・CALCULATE関数の式に追加して計算するだけ!
ALL関数はフィルターを解除したり、させなかったりと便利です。ぜひ使い方をマスターしておきましょう!
下記でPowerBIの便利機能とDAX関数をまとめています。 ぜひご参考下さい!
最後まで読んでいただきありがとうございました!
記事が良ければ☟クリック応援よろしくお願いします!!
コメント