Power BIでレポートを作っていると、「月が1月→10月→11月…の順に並んでしまう」「『高・中・低』をこの順番で出したいのにバラバラ」「棒グラフは売上順にしたいのに、なぜか名前順になる」など、並び替えでつまずくことがよくあります。実はPower BIの並び替えは、どこで(どの層で)並び替えているかを整理すると一気に解決しやすくなります。
ここでは、Power BIの並び替えを「ビジュアル(見た目)」「モデル(列のルール)」「Power Query(取り込み・整形)」の3つに分けて、現場で再現しやすい手順と考え方をまとめます。読み終わる頃には、どの場面でどの方法を使うべきか、迷いがかなり減るはずです。
1. Power BIの並び替えは3層で決まる
Power BIで「順番」が決まる場所は大きく3つあります。ここを混同すると、設定しても効かなかったり、別の場所の設定に上書きされたりして混乱します。
(1) ビジュアルでの並び替え(レポート上の見え方)
棒グラフ、表、マトリックス、スライサーなど、画面に置いたビジュアルごとに並び順を変えられます。たとえば「売上が高い順に棒を並べたい」「表は日付の新しい順にしたい」などはここで行うのが基本です。レポートの閲覧者がクリックして並び替える動きも、基本的にこの層の話です。
(2) モデルでの並び替え(列そのものに“正しい順序”を覚えさせる)
月名、曜日、段階(S/M/L、A/B/C、高/中/低)など、文字としては正しく並ばないものを「この列は別の列の順で並べる」と定義します。Power BIの機能としては「列で並び替え(Sort by column)」が中核です。これはビジュアルでもスライサーでも効きやすく、再利用性が高いのが強みです。
(3) Power Queryでの並び替え(取り込み時の整形)
取り込み時に行を並べ替えることもできます。ただし、Power Queryで行の順番を整えても、レポートのビジュアルがその順番を“維持する”とは限りません。Power Queryの並び替えは、上位N件を残す、重複削除の前に順序を固定する、インデックス列を付けて後段の並び替えのキーを作る、といった「データ加工のため」に使うのが主目的です。
まずはこの3層を頭に置くと、目的に対して最短ルートの手が打てます。
2. ビジュアルで並び替える方法(まずここから試す)
多くのケースは、ビジュアル側の並び替えで解決します。特に「値が大きい順にしたい」「最新日付を上にしたい」などはビジュアルで完結することが多いです。
2-1. グラフ(棒・縦棒・集合/積み上げなど)の基本
棒グラフ系は、だいたい次の流れで並び替えできます。
・対象のビジュアルをクリックして選択
・ビジュアル右上のメニュー(…)から「並び替え」を選ぶ
・「昇順/降順」と「並び替えの基準(どの項目で並べるか)」を指定
ここで重要なのは「並び替えの基準」です。たとえばカテゴリ(商品名)を売上の大きい順にしたい場合、基準を「売上(メジャー)」に切り替える必要があります。基準がカテゴリ列のままだと、当然ながら名前順(文字順)になってしまいます。
2-2. 表(Table)での並び替え
表は直感的で、列ヘッダーをクリックすると昇順・降順が切り替わります。日付列をクリックすれば新しい順、数値列をクリックすれば大きい順、といった操作が可能です。
複数列で並び替えたい場合は、環境によっては追加の列ヘッダーを操作することで優先順位を付けられます(機能が使えない場合もあるため、そのときは並び替えたい主列を先に決めるのが現実的です)。実務では「まず日付降順、その中で売上降順」などをやりたくなりますが、Power BIの表は用途として“閲覧時の操作性”を優先する設計なので、完璧な多段ソートを前提にしすぎない方が安定します。
2-3. マトリックス(Matrix)の並び替えでよく起きること
マトリックスは行/列に階層(カテゴリ→サブカテゴリなど)を持つことが多く、どのレベルを並べ替えているのかが分かりにくいのが特徴です。
よくあるパターンは次の通りです。
・一番上のレベル(大分類)だけが並び替わり、下のレベルは期待通りにならない
・合計(総計)で並び替えたいのに、表示レベルの部分合計で並び替わっているように見える
・展開/折りたたみ(ドリル)すると並び順が変わったように感じる
対策としては、「どのフィールドを行に置いているか」「今どの階層レベルを見ているか」を意識し、必要なら階層を分けて(大分類だけのマトリックス、詳細の表、など)視点を切り分けるとトラブルが減ります。
2-4. スライサーの並び替え
スライサーも並び替えが重要です。月や曜日、優先度のように“自然な順番”があるものは、スライサーで崩れると一気に使いづらくなります。
スライサーの並び替えは、ビジュアルの設定で変えられる場合もありますが、安定させたいなら後述の「列で並び替え(モデル側)」を使うのが鉄板です。スライサーは利用者が触る場所なので、最初から正しい順番を仕込んでおくとレポートの品質が上がります。
3. モデルで並び替える方法(列で並び替えが本命)
「月名」「曜日」「段階」「期」「顧客ランク」のような、文字列としては正しく並ばないものは、モデル側でルールを定義するのが最短です。
3-1. 列で並び替え(Sort by column)の考え方
やりたいことは単純で、「表示用の列(ラベル)」と「並び順用の列(キー)」を分けます。
例:
・表示用:月(”1月”,”2月”,…,”12月”)
・並び順用:月番号(1,2,…,12)
このとき表示用の列に対して「月番号で並び替える」と設定すると、表でもスライサーでもグラフでも月が自然な順になります。
3-2. 設定の手順(Power BI Desktop)
一般的な操作の流れは次のイメージです。
・データビューまたはモデルビューで、並び替えたい列(表示用)を選ぶ
・列ツール(Column tools)で「列で並び替え」を選択
・並び順用の列(キー)を指定
これで「表示用の列は、キー列の順番で並べる」というルールがモデルに保存されます。
3-3. 月・曜日・四半期の典型パターン
月(1月~12月)
・表示用:MonthName(例:1月)
・キー:MonthNo(1~12)
曜日(月~日)
・表示用:WeekdayName(例:月)
・キー:WeekdayNo(1~7)
ここは会社の文化で「月曜始まり」か「日曜始まり」かが変わるので、キー列をそのルールで作るのがポイントです。
四半期(Q1~Q4)
・表示用:QuarterName(Q1~Q4)
・キー:QuarterNo(1~4)
会計年度(FY2025など)と月の組み合わせ
・表示用:FYMonth(例:FY2025-04)
・キー:YearMonthKey(例:202504のような数値)
時系列系は、見た目の文字列に頼らず、必ず並び順キーを数値で持つと安定します。
3-4. 高・中・低、S/M/L、A/B/Cなどのカスタム順
この手のカテゴリは、文字順に任せるとほぼ確実に崩れます。カスタム順のキー列を作るのが正攻法です。
例:優先度(高→中→低)
・表示用:Priority(高/中/低)
・キー:PrioritySort(高=1, 中=2, 低=3)
例:サイズ(S→M→L→XL)
・表示用:Size(S/M/L/XL)
・キー:SizeSort(S=1, M=2, L=3, XL=4)
キーの作り方はPower QueryでもDAXでも可能ですが、どこで作っても「表示用1つに対してキーが1つに決まる」状態にするのが重要です。
3-5. 「列で並び替え」が設定できない・エラーになる代表例
Power BIでは「表示用の値ごとに、並び順キーが一意に決まる」必要があります。これが崩れると設定できません。
よくあるケース:
・同じ表示ラベルが複数行にあり、キーが異なる
例:商品名が同じだがカテゴリが違う、などで商品名だけを表示用にしてキーを付けようとすると、商品名に対して複数キーが存在してしまう
対策の考え方:
・表示用の列を“ユニークな次元(ディメンション)”に置く
・表示ラベル自体を一意にする(商品名+カテゴリなどを連結して別ラベルにする)
・あるいは、別途ID列(商品ID)を表示用にしない形で持ち、モデル設計を整理する
この手の問題は「並び替え」ではなく「モデリング」の問題として捉えると解決が早いです。
4. Power Queryで並び替える方法(目的を間違えない)
Power Queryの並び替えは“表示のため”ではなく、“加工のため”に使うのが基本です。ここを取り違えると「並べ替えたのにグラフでは違う順になる」という現象が起きます。
4-1. Power Queryの並び替えが効く場面
・上位N件を残したい(並び替え→上位の行を保持)
・重複削除の前に、残すべき行を優先順で決めたい
例:同一顧客の複数レコードから最新を残す(日付で降順→重複削除)
・インデックス列を作って、その順番を後で使いたい
例:手作業で決めた並び順をIndexで固定し、モデル側でそのIndexをキーにして並び替える
4-2. Power Queryだけで“表示順”を期待しない
Power BIのモデルは基本的に「テーブルは集合」として扱われ、行の順番自体に意味を持ちません。だから、Power Queryで並べ替えたとしても、レポート上の表やグラフがその順を維持する保証はありません。
表示順を保証したいなら、最終的には次のいずれかが必要になります。
・ビジュアルで並び替えを指定する
・モデルで「列で並び替え」を指定する(キー列を用意する)
Power Queryは、そのためのキー列を作る場所として使うのが一番きれいです。
5. よくある「並び替えできない・おかしい」症状と対処
ここからは現場で遭遇しやすい症状別に、原因と対策をまとめます。
5-1. 1,2,10の順にならず、1,10,2になる
原因:数値が文字列として扱われている(テキスト型)
対策:
・列のデータ型を数値(整数)に直す
・どうしても文字列表示が必要なら、並び順キーとして数値列を別に持ち、「列で並び替え」を使う
・または表示用をゼロ埋め(01,02,10)にするが、これは見た目が変わるので好みが分かれます
5-2. 月名が正しく並ばない(4月が先、10月が途中、など)
原因:月名が文字列で、文字順に並んでいる
対策:
・MonthNo(1~12)を作り、月名列をMonthNoで「列で並び替え」
・年も絡むならYearMonthKey(202501など)を作り、それで並び替える
5-3. スライサーだけ順番が崩れる
原因:ビジュアル側ではなく列の既定順が文字順のまま、またはフィールドが別テーブル由来でキーが無い
対策:
・そのフィールドのテーブルにキー列を追加し、「列で並び替え」を設定
・どうしても複雑なら、スライサー用のディメンションテーブルを作ってそこに並び順を持たせる
5-4. 「その他」「(Blank)」が混ざって意図しない位置に来る
原因:空白値や未分類が存在し、並び替えルール上で特殊な扱いになる
対策:
・データ側で未分類を明示的なラベルに置き換える(例:未設定、不明)
・並び順キーで未分類を最後にする(例:通常は1~n、未分類は999)
・空白を許容するなら、表示上の扱い(フィルターで除外、など)も検討する
5-5. グラフを売上順にしたいのに、日付の折れ線が売上順にならない
原因:時系列(連続軸)では、基本的に時間順が意味を持つため、値で軸順を並べるのが不自然で制限されることがある
対策:
・時系列の分析は時間順を前提にし、売上の大小で並べたい場合は棒グラフやランキング用の別ビジュアルを用意する
・「月別売上の大きい月順」などをどうしてもやりたいなら、月をカテゴリとして扱い、MonthNoで自然順を維持しつつ、別途ランキング表現を工夫する(ただし読み手の誤解が起きやすいので注意)
6. 迷わないための使い分けチェックリスト
最後に、目的別にどこで並び替えを設定すべきかを、短く整理します。
A. そのビジュアルだけ売上順にしたい
・ビジュアルで並び替え
理由:その場限りで完結し、メジャー基準の並び替えができる
B. 月、曜日、優先度など、どのビジュアルでも同じ順にしたい
・モデルで「列で並び替え」
理由:再利用性が高く、スライサー含めて一貫性が出る
C. 上位N件抽出、重複削除で残す行を決める、手順として順番が必要
・Power Queryで並び替え(必要ならインデックス列も)
理由:データ加工の結果を安定させるための並び替えだから
D. 並び替え設定ができない、エラーになる
・表示用の列とキー列が1対1になっているか確認
・必要ならディメンションテーブルを作る
理由:これは並び替え操作の問題ではなく、データ設計の問題で起きることが多い
まとめ
Power BIの並び替えは、ビジュアルでの一時的な並び替え、モデルでの列ルール(列で並び替え)、Power Queryでの加工用並び替えの3層で考えると整理できます。値の大小で並べたいならビジュアル、月や曜日のような“自然順”を維持したいならモデル、抽出や重複処理のためならPower Query、と使い分けるのが最も安定します。
並び替えは見た目の話に見えて、実はモデル設計やデータ型が直結する領域です。まず「何を基準に」「どの範囲に効かせたいか」を決め、適切な層で設定する。この順番だけ守ると、power bi 並び替えのストレスはかなり減らせます。
コメント