Power QueryはExcelのデータ処理を大きく効率化する機能ですが、クエリを更新するたびに行の順番が変わってしまう問題に悩まされることがあります。特に、元データに依存しない固定の並び順を維持したい場合、この現象は作業効率を大きく損なう要因になります。本記事では、Power Queryで更新後に並び替えが変わる原因を具体例とともに解説し、順番を固定する実践的な方法を紹介します。また、失敗しやすいパターンや管理者に確認すべき設定についても触れますので、社内でPower Queryを活用されている方はぜひ参考にしてください。
【要点】この記事で確認すること
- 最初に見る場所: Power Queryの「適用したステップ」内で、並べ替えが正しい順序で適用されているかを確認します。特に「並べ替え」ステップの後に「行のフィルター」や「グループ化」など順序を変える操作がないかチェックしてください。
- 切り分けの軸: 問題が「元データの並び順に依存している」のか、「Power Queryのクエリ内で意図しない並べ替えが発生している」のかを切り分けます。元データが毎回異なる順序で提供される場合は、クエリ内で明示的に並べ替えを固定する必要があります。
- 注意点: 会社PCでPower Queryの設定を変更する場合、共有クエリやテンプレートに影響を与える可能性があります。管理者に確認せずにクエリの共有設定やプライバシーレベルを変更するのは避けてください。
ADVERTISEMENT
目次
1. 行の順番が変わる主な原因
Power Queryで更新後に並び順が変わる原因は、主に以下の3つに分類できます。それぞれどのような状況で発生するのかを理解することで、適切な対策を選択できます。
1-1. 元データの並びが不安定
外部データソース(CSV、データベース、Webなど)からデータを取得する場合、元データの並び順が常に一定とは限りません。例えば、CSVファイルがエクスポートのたびに異なる順序で出力されたり、データベースのSELECT文でORDER BYを指定していなかったりすると、Power Queryで読み込むたびに行の順番が変わります。この場合は、クエリ内で明示的に並べ替えを行わない限り、順序は固定されません。
1-2. クエリのステップ順による影響
Power Queryでは、「適用したステップ」の順序が結果に大きく影響します。例えば、以下のような順序で処理を行うと、見かけ上の並び替えが後から崩れることがあります。
- 「並べ替え」 → 「グループ化」 → 「列の追加」 → 「並べ替え」
- 「行のフィルター」 → 「並べ替え」 → 「ピボット解除」
特に、グループ化やピボット解除は行の順序を内部的に変更する可能性があります。最新の並べ替えが後から上書きされないように、最終的な並べ替えステップを最後に配置することが重要です。
1-3. プライバシーレベルとクエリの結合
複数のデータソースを結合するクエリでは、プライバシーレベルの設定によってPower Queryがデータの読み込み順序を最適化する場合があります。これにより、意図しない並べ替えが発生することがあります。この問題は、プライバシーレベルの設定を「なし」または「同じソース」に変更することで回避できることがありますが、会社のポリシーに違反する可能性もあるため、管理者と相談しながら進めてください。
2. 並べ替えを固定する具体的な手順
並べ替えを安定させるためには、Power Queryエディタ内で適切なステップを追加する必要があります。以下の手順に沿って操作してください。
- クエリの最終ステップとして並べ替えを追加する
Power Queryエディタで該当のクエリを開き、右側の「適用したステップ」の一覧で、一番下のステップ(読み込み直前)を選択します。その状態でホームタブの「行の並べ替え」から、基準とする列を選択して昇順または降順を指定します。これにより、すべての変換処理が終わった後に行の順序が確定します。 - 複数列で並べ替える場合は優先順位を設定する
複数の列を基準に並べ替えたい場合は、「行の並べ替え」ダイアログで列を追加し、優先順位を設定します。例えば、部署コードで昇順、さらにその中で社員番号の昇順というように指定できます。 - 行の追加時に新しいデータが正しい位置に挿入されることを確認する
新しいデータが追加される場合、並べ替えが最終ステップにあれば自動的に正しい位置に配置されます。ただし、元データに重複や列の値が欠落していると、期待通りに並ばないことがあります。その場合は、事前にデータのクリーニングを行ってください。 - 「インデックス列」を追加して手動で順序を固定する
特定の行を特定の位置に固定したい場合、あらかじめ「列の追加」タブから「インデックス列」を追加し、その値を使って並べ替える方法もあります。ただし、インデックス列の値は元データの順序に依存するため、元データの順序が変わるとインデックスも変わります。その場合は、独自のID列とテーブルマッピングが必要になるため、複雑な場合は別のアプローチを検討してください。 - 「並べ替え」ステップの位置を他のステップの下に移動する
既に並べ替えステップがある場合は、そのステップをドラッグして、他のステップの下(最後)に移動します。左側の「適用したステップ」でステップの順序を簡単に変更できます。
3. よくある失敗パターンと対策
3-1. 並べ替えが途中のステップで打ち消される
例えば、「行のフィルター」ステップの後に「並べ替え」を入れても、後から「グループ化」ステップを追加すると並び順がリセットされることがあります。対策として、グループ化やピボット解除など行順序に影響する操作は、並べ替えの前に行い、最後に改めて並べ替えを行ってください。
3-2. 元データが毎回異なる順序で届く
CSVファイルを日次で受け取っているが、そのファイル内の行順が日によってランダムになる場合、Power Queryで読み込むたびに並びが変わります。この場合は、クエリ内で「並べ替え」ステップを最終ステップとして追加するだけで解決します。ただし、並べ替えの基準となる列に重複があると、重複行の間での順序は保証されない点に注意してください。
3-3. クエリの結合や追加で順序が崩れる
複数のクエリを「クエリの追加」または「マージ」で結合すると、結合の順序やキーによって行の並びが変わります。結合後は必ず並べ替えステップを追加し、期待する並び順を明示的に指定してください。
ADVERTISEMENT
4. 状況別の対策比較表
| 状況 | 推奨対策 | 注意点 |
|---|---|---|
| 元データの順序が安定している | 特に何もしなくても良いが、保険として最終ステップに並べ替えを追加する | 重複行がある場合は安定しないため、ユニーク列での並べ替えが望ましい |
| 元データの順序が毎回変わる(CSVなど) | クエリ内で「行の並べ替え」を行い、基準列を指定 | 並べ替えの基準列が存在しない場合は、インデックス列を使用するが、元データの順序変更に弱い |
| グループ化やピボット後に順序が崩れる | グループ化やピボット解除は並べ替えの前に行い、最後に並べ替え | グループ化で集計された行は元の行と1対1対応しないため、基準列の選び方に注意 |
| 複数クエリを結合して順序が変わる | 結合後に「並べ替え」ステップを追加 | 結合キーが重複すると行数が増えるため、事前に重複除去を検討 |
5. 管理者に確認すべき設定項目
社内でPower Queryを共有している場合、並べ替えに関する問題は個人の設定だけでなく、組織のポリシーに影響されることがあります。以下の点を管理者に確認すると、トラブルシューティングがスムーズになります。
- プライバシーレベル設定: データソースごとにプライバシーレベルが設定されていると、Power Queryがデータの読み込み順を最適化するため、予期せぬ並べ替えが発生することがあります。管理者に依頼して、該当クエリのプライバシーレベルを「なし」に変更できるか確認してください。
- Power Queryのバージョン違い: Excelのバージョンや更新プログラムの違いにより、Power Queryの動作が微妙に異なる場合があります。特に、Office 365とOffice 2019では並べ替えの挙動が異なることが報告されています。管理者に現在のExcelのバージョンとビルド番号を確認し、必要に応じて更新を依頼しましょう。
- 共有クエリの設定: 社内で共有しているクエリ(.pqファイルやデータモデル内のクエリ)は、個人が編集すると他のユーザーに影響します。管理者に相談し、並べ替えの固定化を正式な変更として展開してもらうのが安全です。
6. よくある質問(FAQ)
Q. 並べ替えを固定したのに、新しいデータを追加すると順番が変わってしまいます。
A. 並べ替えの基準列に新しいデータが正しく反映されていない可能性があります。例えば、日付列で並べ替えている場合、新しい行の日付が古い行よりも前の日付であれば、当然順序が変わります。また、並べ替えの基準列に空白やエラーがあると、期待通りの順序にならないことがあります。データのクリーニングと、並べ替えが最終ステップにあるか再度確認してください。
Q. インデックス列を使って固定したいが、元データの順序が変わるとインデックスがずれます。
A. インデックス列は元データのその時点の順序を反映するため、元データの順序が変わればインデックスも変わります。特定の行を常に先頭に表示したいなど、あらかじめ決まった位置に固定したい場合は、そのためのキー列(例えば「優先順位」列)を別途用意し、その列で並べ替える方法が確実です。
Q. 同じクエリを他のユーザーと共有していますが、相手の環境では並び順が違います。
A. クエリの依存するデータソースや、プライバシーレベル設定、Excelのバージョンが異なる可能性があります。クエリをテキストとしてエクスポートし、相手の環境で再インポートして動作を比較してください。また、絶対参照ではなく相対的な並べ替え(特定の列の昇順など)にすることで、環境差を吸収できる場合があります。
Q. Power Queryの並べ替えは大文字小文字を区別しますか?
A. デフォルトでは区別しません。大文字小文字を区別して並べ替える必要がある場合は、カスタム列を作成して小文字や大文字に統一するなどの前処理が必要です。ただし、データの一貫性を保つため、通常は区別しないまま並べ替えることをおすすめします。
7. まとめ
Power Queryで更新後に並び順が変わる問題は、多くの場合、元データの順序が不安定であるか、クエリ内のステップ順が適切でないことが原因です。基本的な対策として、最終ステップに「行の並べ替え」を追加し、その前の処理すべてを完了させることが重要です。また、グループ化や結合など順序を変える操作は並べ替えの前に行うことで、安定した結果を得られます。どうしても固定したい行がある場合は、基準となるキー列を整備し、その列で並べ替えるようにしてください。社内で共有するクエリについては、管理者と連携して統一的な設定を行うことで、環境差によるトラブルを防ぐことができます。
ADVERTISEMENT
超解決 Excel・Word研究班
企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。
Office・仕事術の人気記事ランキング
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【PDF】PDFのサムネイルプレビューが表示されない!エクスプローラーの設定とAcrobat環境設定
- 【Excel】文字がセルの枠からはみ出す・隠れる!「折り返して表示」と「縮小して全体を表示」の使い分け
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Outlook】宛先が「オートコンプリート」に出ない・間違っている時の修正手順|履歴の削除と再構築
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
