Power BI で「マトリックス」を使って集計表を作ると、行の並び順が期待どおりにならずに悩むことがよくあります。たとえば「店舗を売上の高い順にしたい」「月を 1月→2月→…の順にしたい」「ステータスを 未対応→対応中→完了 の順に固定したい」など、やりたいことは単純なのに、なぜか思った順番になりません。
この記事では、power bi マトリックス 行 並び替え を確実にコントロールするための考え方と手順を、初めての人でも迷いにくい順番で整理します。クリック操作でできる範囲、モデル側で整えるべき範囲、DAX を使うべき場面、そして「できそうでできない」ポイントと回避策まで、まとめて解説します。
1. まず押さえる:マトリックスの並び替えはどこで決まるのか
マトリックスは、行に置いたフィールド(カテゴリ)を軸にして、値(メジャー)を交差させるビジュアルです。並び替えのルールは大きく分けて次のどれかで決まります。
-
行に置いている列そのものの並び(文字順、数値順、モデルの「列で並び替え」設定)
-
値(売上などのメジャー)に基づく並び(昇順・降順)
-
階層(親→子)の構造に沿った並び(親の順、子の順が別々に効く)
ここで重要なのは、マトリックスの「行」は単なる一覧ではなく、集計コンテキストの中で並ぶ点です。つまり同じ店舗でも、スライサーで期間を変えれば売上が変わり、売上順の並びも変わります。固定したい並びと、状況に応じて変えたい並びを、最初に分けて考えるのが近道です。
2. クリックでできる基本の並び替え(最短で試す)
まずはビジュアル上の操作でいけるケースです。行の並び替えで最初にやることは「マトリックスのどこを基準にソートしているか」を明示することです。
手順のイメージは次のとおりです。
・マトリックスをクリックして選択
・右上の三点メニュー(…)を開く
・並び替え(Sort)を選ぶ
・基準にしたい項目(行フィールド、または値のメジャー)を選ぶ
・昇順/降順を選ぶ
ポイントは「行フィールド自体で並び替える」のか「値で並び替える」のかをはっきり選ぶことです。たとえば店舗名を五十音順にしたいなら店舗名で並び替え、売上の高い順にしたいなら売上メジャーで並び替えです。
よくある引っかかりとして、ヘッダーをクリックしても思ったとおりに切り替わらないことがあります。これは、マトリックスの設定や、階層がある状態、あるいは複数の値がある状態で、どの列ヘッダーを基準にしているのかが曖昧になっているのが原因です。三点メニューから「基準」を選ぶ手順にすると、迷いが減ります。
3. 文字順になってしまう原因:モデルの「列で並び替え」を使う
「月」が 1月、10月、11月、12月、2月… のように並んでしまう。あるいは「ステータス」が完了、対応中、未対応… のように文字順で並ぶ。これは、行に置いている列が文字列で、文字順ソートが働いている典型例です。
このタイプは、ビジュアル上で頑張るより、モデル側で「この列は別の列の順番で並べる」と設定して解決するのが王道です。使う機能は「列で並び替え(Sort by column)」です。
やり方の流れはこうです。
・並び順を表す列(数値のキー)を用意する
・並べたい表示列(例:月名、ステータス名)を選択する
・「列で並び替え」でキー列を指定する
月名なら、月番号(1〜12)をキーにします。曜日なら、月曜=1〜日曜=7 のようなキーを作ります。ステータスなら、未対応=1、対応中=2、完了=3 といったキーです。
この方法の強いところは、どのビジュアルに置いても同じ順番になることです。つまり「固定したい順番」を作りたいなら、まずこれが第一選択になります。
4. 並び順キーの作り方(DAX 計算列で作る定番パターン)
並び順キーを持っていないデータでも、Power BI 側で計算列として作れます。ここではよく使うパターンだけ押さえます。
4-1. 曜日やステータスなど、決め打ちの並び
例:ステータス列が「未対応」「対応中」「完了」のテキストだけを持つ場合
計算列(例:StatusSort)を作り、次のように割り当てます。
・未対応 → 1
・対応中 → 2
・完了 → 3
・その他 → 99
考え方は「表示用テキスト」と「並び順数値」を必ず分離することです。表示用を直接いじって並びをコントロールしようとすると、別の場面で崩れやすくなります。
4-2. 年月の並び(YYYYMM のキーが鉄板)
月をきれいに時系列順にするなら、YYYYMM 形式の数値キーが安定します。
例:2026年2月なら 202602 のようなキーです。
・表示列:2026-02 のような文字列
・並び順列:202602 の数値
この形にしておけば、年をまたいでも並びが壊れません。
4-3. 数字っぽい文字列問題(“2” と “10” の順)
店舗コードや商品コードなどが文字列で入っていると、2 と 10 の順が逆転します。
この場合は、数値に変換したキー列を作るか、桁を揃えたキー(例:000002、000010)を作ります。どちらが良いかは、元データの仕様(先頭ゼロが意味を持つか)で決めます。
5. 値(売上など)で行を並び替えるときのコツ
店舗別売上のように「値で並べたい」ケースは、マトリックスでもよくやります。ただし、階層や小計が絡むと混乱しやすいので、コツを押さえます。
5-1. まずは「どの値列でソートしているか」を固定する
値が複数(売上、利益、件数など)あると、クリック操作では基準がぶれがちです。三点メニューから並び替えの基準を明確にし、売上(または任意のメジャー)を選んで降順にします。
5-2. 合計で並ぶのか、現在表示の列で並ぶのかを意識する
マトリックスは列にもカテゴリを置けます。たとえば列に「年度」、値に「売上」、行に「店舗」を置いた場合、どの年度列を基準に並び替えるかで並びが変わります。
「合計列で並べたい」のか、「2026年度の列で並べたい」のかが曖昧だと、操作している本人も結果を説明できなくなります。
おすすめは、並べたい基準を一つに決め、必要ならその基準値だけを見せる(または並べ替え専用の列を作る)ことです。
5-3. ランキング用メジャーを作ると、並び替えが安定することがある
値で並び替えが安定しない、同値が多くて順が揺れる、といった場合は「Rank(順位)」をメジャーで作って、それを基準にする考え方があります。
ただし注意点として、マトリックスでは「メジャーで作った順位をそのままモデルの並び順列として指定する」ことはできません(列で並び替えは列に対して行うため)。その代わり、ビジュアルのソート基準として順位メジャーを選び、昇順にする、という運用が現実的です。
同値が多い場合は、順位の同点処理の仕様(同率順位を許すか、連番にするか)で見え方が変わります。目的に合わせて作ります。
6. 階層があるときの並び替え(地域→店舗 など)
マトリックスで多いのが、行に階層を入れるケースです。例として、行が「地域」「店舗」の2段階だとします。
このときの並び替えは単純に「店舗を売上順」では終わりません。親である地域の順序と、子である店舗の順序が別々に存在します。ここでよく起きる混乱は次の2つです。
・地域は地域で売上順にしたい
・地域の中では店舗を売上順にしたい
しかし、Power BI の標準的なソートでは「今どのレベルを見ているか」「展開状態かどうか」によって、効いているソートが変わって見えることがあります。
実務上の割り切りとしては次のどちらかに寄せると安定します。
A) 親レベル(地域)を固定順にする(モデルの列で並び替え)
B) 親レベル(地域)も値で並べ、子は子で値で並べる(ただし見せ方に工夫)
A は説明が簡単で、レポート利用者の混乱も少ないです。B は分析としては気持ちいいのですが、同じ画面で複雑なソートが重なると、見る人が「何順なのか」を見失いがちです。
もし「地域の中で店舗を売上順にしたい」が最優先なら、地域は固定順にしておいて、店舗だけ値ソートにするのが現場では扱いやすいことが多いです。
7. カスタム順(任意の並び)を確実に通すための設計
「この順番で並べたい」が最初から決まっているなら、最も事故が少ないのは「並び順マスタ」を作ることです。
例:商品カテゴリの表示順を決めたい
・カテゴリマスタ:カテゴリ名、カテゴリ表示順(数値)
・事実テーブルにカテゴリIDがある
・カテゴリマスタをリレーションでつなぐ
・カテゴリ名を行に置き、カテゴリ名の列で並び替えに表示順を指定
この方式のメリットは次です。
・並びのルールがデータとして管理できる
・別のレポートでも再利用できる
・並び替えが「人の操作」ではなく「モデルの仕様」になる
反対に、レポート作成者が都度クリックで並び替えしている状態だと、ページ複製やビジュアル追加のたびに設定漏れが起きやすく、メンテナンス性が落ちます。
8. 「並び替えできない」「期待どおりに反映されない」ときのチェックリスト
並び替えが効かないとき、原因は操作ミスよりも「データ型」と「モデル設定」と「ビジュアル状態」の組み合わせであることが多いです。次を上から順に確認すると切り分けが早いです。
8-1. 行フィールドは本当にその列か
同じような列(表示名が似ている列)を使っていないか確認します。たとえば「月名」と「年月表示」など、見た目が同じでも違う列を置いていると、設定したはずの並びが効きません。
8-2. 並び順キー列は一意に近いか
列で並び替えに使うキー列に重複が多いと、同じキー同士の内部順が不安定になります。キー列は、少なくともその表示列の範囲では、期待する順序を作れる粒度であるべきです。
8-3. 文字列の数値が混ざっていないか
“1”, “2”, “10” のような文字列数値だと、意図せず文字順になります。データ型を見直すか、変換したキー列を作ります。
8-4. 空白や不明値が並びを壊していないか
空白があると、先頭や末尾に集まって「順がおかしい」と感じやすいです。空白を “不明” と表示したいのか、除外したいのかで対処が変わります。
8-5. 行の階層が展開状態かどうか
ドリルダウンや展開状態によって、ソートの基準が切り替わって見えることがあります。まずは展開を戻して、親レベルだけで並びが正しいか確認し、次に子レベルで確認すると混乱しにくいです。
9. 実例:地域ごとに店舗を売上順に並べたい(現実的な落としどころ)
要件:
・行:地域、店舗
・値:売上
・地域は決まった順(東→西→南→北など)
・各地域の中で店舗は売上降順
この場合の組み立てはこうします。
-
地域マスタに「地域順」を持たせる(または計算列で作る)
-
地域名を「列で並び替え」で地域順に設定
-
マトリックスで、店舗は売上で降順ソート
こうすると、地域は常に固定順、店舗は地域の中で売上順という、利用者にとって理解しやすい状態になります。地域まで売上順にしてしまうと、スライサーや期間変更で地域の順が入れ替わり、見比べにくくなることがあります。分析目的によってはそれが正しいこともありますが、定例報告や運用レポートでは「順が動く」こと自体がストレスになることが多いので、固定順の採用が無難です。
10. もう一段上:利用者が並び替え基準を選べるようにする考え方
「売上順も見たいし、利益順も見たいし、件数順も見たい」という要望はよくあります。ここで大事なのは、利用者がクリックで並び替えられる設計にするのか、選択肢として用意して切り替えさせるのか、を決めることです。
運用で混乱が少ないのは、選択肢を用意して切り替える方式です。たとえば「並び替え基準」というスライサー(売上、利益、件数)を置き、選択された基準で順位メジャーを切り替え、その順位をソート基準にする、という発想です。
ただし、この方式はモデルとメジャー設計が少し増えます。レポートの利用者が多く、並び替えの説明コストを下げたい場合に効果が出やすいです。
11. まとめ:power bi マトリックス 行 並び替え の最短ルート
最後に、行の並び替えで迷ったときの判断基準を短くまとめます。
・固定したい順番(曜日、月、ステータス、社内ルール順)は「列で並び替え」でモデルに持たせる
・状況で変わる順番(売上順など)はビジュアルの並び替えで値を基準にする
・階層がある場合は、親と子の並びを分けて考え、親は固定順に寄せると安定しやすい
・同値が多くて順が揺れるなら、順位メジャーを用意してソート基準を明確にする
・「何順か分からない」を防ぐために、並び替え基準はできるだけ一本化し、レポート利用者の視点で説明できる形に整える
マトリックスは強力ですが、並び替えは「操作」ではなく「設計」で勝つのがコツです。ここまでの手順を押さえておけば、行の並びが意図せず崩れる場面は大きく減ります。もし今のレポートで「月が変な順」「ステータスが文字順」「売上順が安定しない」が起きているなら、まずは並び順キー列を用意して列で並び替えを設定するところから着手すると、改善が早いです。
コメント