BI探検ノート

Power BI の SWITCH(TRUE())で区分分け:条件の順番を逆にすると、A が付かなかった

約4分

濵口 翔長崎で、Power BI のつまずきを記録しています
目次
  1. 使ったデータ
  2. 公式の説明
  3. 作った計算列
  4. 実機で確かめた結果
  5. 気をつけること
  6. この記事で確認できたこと・できていないこと
  7. 参考

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

売上の大きさで、A・B・C のように区分を付けたい。DAX の SWITCH(TRUE(), …) を使うと、IF を何重にも重ねずに書けます。ところが、条件を書く順番を逆にしただけで、A が付かなくなりました。実機で確かめた結果を書きます。

結論(30秒版)

  • SWITCH(TRUE(), 売上 >= 4000, "A", 売上 >= 3000, "B", "C") と書くと、売上 5,000 は A、3,200 は B になりました。
  • 条件を逆(3000 を先、4000 を後)にすると、売上 5,000 も B になりました。A は、1つも付きませんでした(6行の中で、「逆の順」の列に A は出ませんでした)。
  • 公式の説明でも、「条件の順番が大事で、一致した時点で、あとの条件は評価されない。厳しい条件(絞り込みの強いもの)を先に書く」とされています。

使ったデータ

6行の CSV(練習問題で配っている sales_agg.csv)です。売上は、2,400 〜 5,000 です。

店舗商品コード売上
渋谷10013,600
渋谷10024,000
新宿10012,400
新宿10032,500
京都10023,200
京都10035,000

公式の説明

Microsoft Learn の SWITCH の説明には、次のことが書かれています。

  • 最初の引数を TRUE にすると、複数の IF を重ねる代わりに、条件を順に書ける。
  • 条件の順番が大事。1つ一致した時点で、その結果が返り、あとの条件は評価されない。
  • 「最も厳しい値(条件)を、緩い条件より先に書くこと」。例として、< 100 を先に、< 10 をあとに書くと、< 10 の結果(“B”)は、永遠に返らない、とあります。

作った計算列

テーブルに、「新しい列」で、2つの計算列を作りました。テーブル名は sales_agg です。

区分(正しい順) = SWITCH(TRUE(),
    sales_agg[売上] >= 4000, "A",
    sales_agg[売上] >= 3000, "B",
    "C")

区分(逆の順) = SWITCH(TRUE(),
    sales_agg[売上] >= 3000, "B",
    sales_agg[売上] >= 4000, "A",
    "C")

違いは、3000 の条件と 4000 の条件の、書く順番だけです。

実機で確かめた結果

同じ6行の表。京都・商品1002(売上3,200)の行を選ぶと、正しい順の区分は B、逆の順も B。京都・商品1003(売上5,000)の行を選ぶと、正しい順は A、逆の順は B

「逆の順」の列(右の表)は、6行が、次のようになりました。

店舗商品コード売上区分(逆の順)
京都10023,200B
京都10035,000B
渋谷10013,600B
渋谷10024,000B
新宿10012,400C
新宿10032,500C
  • 売上 4,000 と 5,000 の行も、B になりました。「3,000 以上」の条件が先に当たって、そこで止まるためだと考えられます(公式の説明と、一致する動きです)。
  • 「A」は、1つも付きませんでした。

「正しい順」の列は、同じ表の中に並べず、別の表に出して、右の表の行を選んだときに、左の表に出る値で、確かめました。

  • 京都・商品1003(売上 5,000)を選ぶと、A。
  • 京都・商品1002(売上 3,200)を選ぶと、B。

気をつけること

  • エラーは出ません。値だけが、黙って、ずれます。上の例も、「A がない」ことに気づかないと、見過ごします。
  • 区分が「A・B・C」の3つのはずなのに、ビジュアルに、A が出てこないときは、条件の順番を疑ってください。
  • 「以上」で書くときは、大きい値の条件を先に。「未満」で書くときは、小さい値の条件を先に書く、と考えると、整理しやすいと思います(これは、私の整理で、公式の言葉ではありません)。

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

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

確認できたこと

  • 「逆の順」の列で、売上 4,000 と 5,000 の行が、B になったこと(6行すべて、画面で確認)。
  • 「正しい順」の列で、売上 5,000 の行が A、3,200 の行が B になったこと(右の表で、その行を選んだときに、左の表に出た値)。
  • 公式の説明と、動きが一致したこと。

確認できていないこと

  • 「正しい順」の列の、残りの4行(3,600、4,000、2,400、2,500)の値は、画面で、確認していません。
  • メジャー(計算列でなく)で、同じことをした場合。
  • 条件に AND や && を使った、範囲指定(「3,000 以上 4,000 未満」など)。
  • 値が空(BLANK)の行がある場合の動き。
  • 大きなデータでの速さ、DirectQuery、Power BI サービスでの動き。

参考

発行: 濵口 翔 / 長崎 / 2026年開始