Power BI の SWITCH(TRUE())で区分分け:条件の順番を逆にすると、A が付かなかった
濵口 翔長崎で、Power BI のつまずきを記録しています確認日2026年10月27日。
Power BI Desktop 2.159.883.0(日本語、 Windows)、 ダミーの データ6行で 確かめました。 確認できていない ことは、 末尾に まとめました。
売上のSWITCH(TRUE(), …) をIF を
結論
(30秒版)
SWITCH(TRUE(), 売上 >= 4000, "A", 売上 >= 3000, "B", "C")と書くと、 売上 5,000 は A、 3,200 は B に なりました。 - 条件を
逆( 3000を先、 4000を後)に すると、 売上 5,000 も B に なりました。A は、 1つも (6行の付きませんでした 中で、 「逆の 順」の 列に A は 出ませんでした)。 - 公式の
説明でも、 「条件の 順番が 大事で、 一致した 時点で、 あとの 条件は 評価されない。厳しい 条件(絞り込みの 書く」と強い もの )を 先に されています。
使ったデータ
6行のsales_agg.csv)です。
| 店舗 | 商品コード | 売上 |
|---|---|---|
| 渋谷 | 1001 | 3,600 |
| 渋谷 | 1002 | 4,000 |
| 新宿 | 1001 | 2,400 |
| 新宿 | 1003 | 2,500 |
| 京都 | 1002 | 3,200 |
| 京都 | 1003 | 5,000 |
公式の説明
Microsoft Learn の
- 最初の
引数を TRUEにすると、 複数の IFを重ねる 代わりに、 条件を 順に 書ける。 - 条件の
順番が 。大事 1つ 一致した 時点で、 その 結果が 返り、あとの 条件は 。評価されない - 「最も
厳しい 値(条件)を、 緩い 条件より 先に 書く こと」。 例と して、 < 100を先に、 < 10をあとに 書くと、 < 10の結果 (“B”)は、 永遠に 返らない、と あります。
作った計算列
テーブルに、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 の
実機で確かめた結果

「逆の
| 店舗 | 商品コード | 売上 | 区分 |
|---|---|---|---|
| 京都 | 1002 | 3,200 | B |
| 京都 | 1003 | 5,000 | B |
| 渋谷 | 1001 | 3,600 | B |
| 渋谷 | 1002 | 4,000 | B |
| 新宿 | 1001 | 2,400 | C |
| 新宿 | 1003 | 2,500 | C |
- 売上 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日。
確認できた
- 「逆の
順」の 列で、 売上 4,000 と 5,000 の 行が、 B に なった こと (6行すべて、 画面で 確認)。 - 「正しい
順」の 列で、 売上 5,000 の 行が A、 3,200 の 行が B に なった こと (右の 表で、 その 行を 選んだ ときに、 左の 表に 出た 値)。 - 公式の
説明と、 動きが 一致した こと。
確認できていない
- 「正しい
順」の (3,600、列の、 残りの 4行 4,000、 2,400、 2,500)の 値は、 画面で、 確認していません。 - メジャー(計算列でなく)で、
同じ ことを した 場合。 - 条件に
ANDや&&を使った、 範囲指定( 「3,000 以上 4,000 未満」など)。 - 値が
空(BLANK)の 行が ある 場合の 動き。 - 大きな
データでの 速さ、 DirectQuery、 Power BI サービスでの 動き。
参考
- Microsoft Learn: SWITCH — https://learn.microsoft.com/dax/switch-function-dax