BI探検ノート

Power BI の ALL と ALLSELECTED の違い:スライサーで割合の分母が変わるとき

約5分

濵口 翔長崎で、Power BI のつまずきを記録しています
目次
  1. 使ったデータとメジャー
  2. 公式の説明
  3. 実機で確かめた結果
  4. どちらを使うか
  5. この記事で確認できたこと・できていないこと
  6. 参考

確認日2026年10月27日。Power BI Desktop 2.159.883.0(日本語、Windows)、ダミーのデータ6行で確かめました。確認できていないことは、末尾にまとめました。

店舗ごとの売上が、全体の何パーセントかを出す。そこまでは 別の記事 で書きました。ところが、スライサーで店舗を絞り込むと、割合の見え方が、分母の作り方で変わりました。この記事では、分母に ALL を使った場合と ALLSELECTED を使った場合を、並べて確かめた結果を書きます。

結論(30秒版)

  • 分母を ALL にすると、スライサーで絞り込んでも、分母は、全店舗の合計のままです。選んだ店舗の割合の合計は、100% になりません(今回は 76.33%)。
  • 分母を ALLSELECTED にすると、分母は、スライサーで選んだ店舗の合計になり、割合の合計が、100% になりました。
  • 「全体の中での割合」なら ALL、「いま見えている範囲の中での割合」なら ALLSELECTED、という使い分けになると、実機の結果から読み取れました。

使ったデータとメジャー

店舗(京都・渋谷・新宿)ごとの売上が入った、6行の CSV です(練習問題で配っている sales_agg.csv です)。売上の合計は、京都 8,200、渋谷 7,600、新宿 4,900 で、全部で 20,700 です。

次の5つのメジャーを作りました。テーブル名は sales_agg です。

売上合計 = SUM(sales_agg[売上])
全体ALL = CALCULATE([売上合計], ALL(sales_agg))
全体ALLSELECTED = CALCULATE([売上合計], ALLSELECTED(sales_agg))
割合ALL = DIVIDE([売上合計], [全体ALL])
割合ALLSELECTED = DIVIDE([売上合計], [全体ALLSELECTED])

2つの割合のメジャーは、書式を「パーセンテージ」にしました。表に、店舗、売上合計、この5つを並べ、店舗のスライサーを置きました。

公式の説明

Microsoft Learn では、次のように説明しています。

  • ALL: テーブルのすべての行を返し、かけられているフィルターを無視する。
  • ALLSELECTED: クエリの中のフィルター(行や列のフィルター)を無視しつつ、外から来るフィルターは残す。ALL との違いは、クエリ内で明示的に設定されたフィルターと、行・列のフィルター以外のコンテキストのフィルターを、保持することだと書かれています。

スライサーでの選択は、表から見ると「外から来るフィルター」です。そのため、ALLSELECTED では、選択が残るはずです。以下は、実機で確かめた結果です。

実機で確かめた結果

同じ表を、スライサーを何も選ばない・渋谷だけ・京都と渋谷にした3つの状態で並べた図。全体ALLはいつも20700、全体ALLSELECTEDは選んだ店舗の合計になる

① スライサーで何も選ばない

店舗売上合計全体ALL全体ALLSELECTED割合ALL割合ALLSELECTED
京都8,20020,70020,70039.61%39.61%
渋谷7,60020,70020,70036.71%36.71%
新宿4,90020,70020,70023.67%23.67%
合計20,70020,70020,700100.00%100.00%

何も選ばないときは、2つの割合は、同じ値でした。違いは、スライサーで選んだときに出ます。

② 渋谷だけを選ぶ

店舗売上合計全体ALL全体ALLSELECTED割合ALL割合ALLSELECTED
渋谷7,60020,7007,60036.71%100.00%

分母は、ALL では 20,700 のまま、ALLSELECTED では 7,600(渋谷だけ)になりました。

③ 京都と渋谷を選ぶ(Ctrl を押しながらクリック)

店舗売上合計全体ALL全体ALLSELECTED割合ALL割合ALLSELECTED
京都8,20020,70015,80039.61%51.90%
渋谷7,60020,70015,80036.71%48.10%
合計15,80020,70015,80076.33%100.00%
  • 割合ALL の合計は、76.33% でした。選ばなかった新宿(23.67%)が、分母には入ったままだからです。
  • 割合ALLSELECTED は、京都 51.90%、渋谷 48.10% で、合計が 100.00% になりました。

どちらを使うか

やりたいこと使うもの今回の結果
全店舗の中での、各店舗の割合を、絞り込んでも見たいALL京都は、絞り込んでも 39.61%
いま見えている店舗の中での、割合を出したい(合計 100%)ALLSELECTED京都は、選んだ2店舗の中で 51.90%

「選んだ範囲の中の割合」を出したいのに、ALL を使うと、合計が 100% にならない表になります。これが、今回の実機で、一番はっきり見えた違いでした。

この記事で確認できたこと・できていないこと

確認日: 2026年10月27日。Power BI Desktop 2.159.883.0(日本語、Windows、未サインイン、個人の環境)。

確認できたこと

  • 上の3つの状態で、表のとおりの値になったこと(割合は、手計算とも合っています。8,200 ÷ 15,800 = 51.90%、7,600 ÷ 15,800 = 48.10%)。
  • Ctrl を押しながらクリックすると、スライサーで複数の店舗を選べたこと。押さずにクリックすると、1つだけの選択になったこと。

確認できていないこと

  • ビジュアル自体にかけた(フィルター ペインの)フィルターで、ALLSELECTED がどう動くか。
  • 複数のスライサー、複数の列を組み合わせたときの動き(Microsoft Learn には、ALL と自動存在(auto-exist)に関する注意があります。今回は試していません)。
  • 日付テーブルとの組み合わせ、リレーションのある複数のテーブルでの動き。
  • 大きなデータでの速さ。
  • DirectQuery や、Power BI サービスでの動き。

参考