【PowerBI】ALL関数でフィルターを解除した計算

ALL関数 ALLSELECTED関数 DAXDAX関数
スポンサーリンク

PowerBIでスライサーを設定したものの、ここはフィルターをかけたくない!って場面ありますよね。 そんな時に便利なのがALL関数です。また、逆にフィルターをかけたまま計算をさせたい場合はALLSELECTED関数を使います!

本日は
・ALL関数まとめ(ALL/ALLSELECTED)
・ALL関数を用いてスライサーのフィルター条件を解除
・ALLSELECTED関数でフィルターの条件で計算

PowerBIではスライサーとセットでALL、ALLSELECTED関数を使う場面は多いので、ぜひご参考下さい!

ALL関数まとめ(ALL/ALLSELECTED関数)

PowerBIのDAX関数であるALL関数系は主に下記の3種類です。

「ALL関数」「ALLSELECTED関数」「ALLEXCEPT関数」を使います。

【ALL関数】構文
 =ALL(テーブル,列)
 フィルターをかけたくないテーブルまたは列を指定
 スライサーの影響を受けずに計算できる!

参考:Microsoft Docs ALL関数

【ALLSELECTED関数】構文
 =ALLSELECTED(テーブル,列)
 スライサーで設定している列などを入れる
 指定した列で計算
 スライサーの影響を受ける状態で計算できる!

参考:Microsoft Docs ALLSELECTED関数

【ALLEXCEPT関数】構文
 =ALLEXCEPT(テーブル,列)
 指定した列”以外”の全てのフィルターを外す計算

参考:Microsoft Docs ALLEXCEPT関数

つまり、
スライサーに関係なく全てのフィルターを解除したい場合はALL関数
指定した条件で計算させたい場合はALLSELECTED関数
ALLEXCEPT関数はALLSELECTED関数と逆条件のような感じです。

それでは、具体的に使い方を紹介します。

スポンサーリンク

ALL関数で全てのフィルターを解除

ALL関数を使えば、スライサーの影響を受けずに計算させることができます。

今回は地域別のスライサーを追加した後に、
売上合計を地域スライサーの影響を無視した状態で表示していきます!

◆使用するデータ
下記のような製品別の売上リストをPowerBIに取り込んでいる場合を想定します。
製品/性別/地域/年齢/売上がのったデータになります。

まずはこのデータからレポート画面にテーブル表スライサーを追加していきます。方法は下記の関連記事をご参考下さい☟

【関連記事】
▶PowerBIのテーブル表の作成と条件付き書式の設定
▶Power BIでスライサー/フィルター機能の追加

テーブル表は下記の通り、テーブルを追加しフィールドから「地域」、「売上」を値に追加した表を作成しました。

PowerBI テーブル ALL関数 表

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

PowerBI スライサー 表 ALL関数 ALLSELECTED関数

◆ALL関数でフィルターを解除した売上合計をテーブルに追加

今回はスライサーの影響を受けない売上合計を計算したいため、CALCULATE関数を用います。

【関連記事】
PowerBIのDAXで超重要なCALCULATE関数の説明は下記記事をご参考下さい!☟
▶CALCULATE関数で条件付きの合計や平均(DAX関数)

それでは、ALL関数でメジャーを追加していきます。

PowerBI メジャー追加

メジャー名:売上ALL
関数:CALCULATE関数、ALL関数
CALCULATE(式,フィルター)
=ALL(列)

CALCULATE関数の”フィルター”の部分にALL関数を入れ込めばOK!
つまり、

売上ALL = CALCULATE(SUM('購入リスト'[売上]),ALL('購入リスト'[地域]))
ALL関数 DAX 条件 解除 影響を受けない

ALL関数で地域列を指定しているので、スライサーで地域をフィルターしても影響受けずに合計できる!

実際にレポート画面でテーブルに作成したメジャー「売上ALL」を追加して確認します。

ALL関数 PowerBI

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

ALL関数を使えばスライサーの影響をうけない状況、つまり「フィルターを解除した計算」ができます!

フィルターやスライサーを設定したせいで、合計が合わない場合にもALL関数を設定してみて下さい!

スポンサーリンク

ALLSELECTED関数でフィルター選択した条件で計算

ALL関数では、選択を外しても全ての売上合計が表示されました。ALLSELECTED関数を使えば、スライサーで選択したものだけを対象に計算させることができます。こちらを説明します!

同様にメジャーを追加し、ALLSELECTED関数で計算式を指定します。

メジャー名:売上ALLSELECTED
関数:CALCULATE関数、ALLSELECTED関数
CALCULATE(式,フィルター)
=ALLSELECTED(列)

CALCULATE関数の”フィルター”にALLSELECTED関数を入れたらOK!
つまり、

売上ALLSELECTED = CALCULATE(SUM('購入リスト'[売上]),ALLSELECTED('購入リスト'[地域]))
ALLSELECTED関数 PowerBI ALL DAX CALCULATE

ALLSELECTED関数で地域列を指定すれば、スライサーの影響受けた状態での合計が計算できます!

実際にレポート画面でテーブルに作成したメジャー「売上ALLSELECTED」を追加して確認します。

ALLSELECTED関数 ALL DAX PowerBI

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

ALLSELECTED DAX スライサー解除 フィルター 解除

こちらはスライサーの選択したものだけの合計が表示されていますね! つまり、ALLSELECTED関数を使えば「スライサーの影響を受ける状態で計算」ができる!

ちなみに、ALL関数、ALLSELECTED関数で追加したメジャーを使って、売上割合を計算させると下の図の通りになります。ALL関数はフィルターに影響しない全体の売上合計の割合ALLSELECTED関数はフィルターに影響した状態なので割合の合計が100%になってることが分かります!
※DIVIDE関数で「売上÷売上ALL」「売上÷売上ALLSELECTED」をしています。

割合 DIVIDE関数 ALL ALLSELECTED PowerBI DAX

【関連記事】
【Power BI】DAX関数で割り算(DIVIDE関数)
【PowerBI】パレート図の作成
【PowerBI】RANKX関数(ALLSELECTED関数でフィルターを設定した順位付け)

スポンサーリンク

ALL関数、ALLSELECTED関数まとめ

今回のまとめ
スライサーの影響をうけない計算をしたい場合はALL関数
スライサーで選択した条件の計算をしたい場合はALLSELECTED関数
CALCULATE関数の式に追加して計算するだけ!

ALL関数はフィルターを解除したり、させなかったりと便利です。ぜひ使い方をマスターしておきましょう!

下記でPowerBIの便利機能とDAX関数をまとめています。 ぜひご参考下さい!

【PowerBI】便利機能9選とDAX関数まとめ

よく使うDAX関数まとめ(構文、事例紹介)

最後まで読んでいただきありがとうございました!

記事が良ければ☟クリック応援よろしくお願いします!!

にほんブログ村 サラリーマン日記ブログ IT系サラリーマンへ
にほんブログ村

コメント

タイトルとURLをコピーしました