Excelで並び替えをしようとしたとき、「なぜかデータがぐちゃぐちゃになってしまった」「一部の列しか並び替えられない」「他の列が連動してくれない」「昇順・降順ボタンを押したのに思い通りにならない」といった経験はないでしょうか。
並び替えはExcelの中でも特に使用頻度の高い基本機能のひとつですが、データの状態や設定のちょっとしたミスによって意図しない結果になることが少なくありません。
本記事では、Excelの並び替えができない原因とその対処法を、ぐちゃぐちゃになるケース・連動しないケース・一部しかできないケース・複数列への対応まで、関連するトラブルを幅広く網羅して解説します。
「並び替えボタンを押したら別の列がずれた」「数字の順番がおかしい」「文字列がうまく並ばない」など、よくある失敗のパターンとその解決策を具体的にご説明します。
初心者の方はもちろん、「なんとなく使えているけど失敗することがある」という方にも役立つ内容ですので、ぜひ最後までご覧ください。
Excelの並び替えができない根本原因はデータの状態と設定にある
Excelの並び替えが正しく動作しないとき、その原因はほぼ例外なくデータの状態・範囲の選択方法・オプション設定のいずれかにあります。
並び替え機能そのものが壊れているケースはほとんどなく、条件を正しく整えれば必ず正常に動作します。
「なぜそうなるのか」という仕組みを理解することが、再発防止のための最善策です。
本記事全体を通じて使用するサンプルデータを確認しましょう。
| 行 | A列:商品名 | B列:カテゴリ | C列:単価(円) | D列:在庫数 | E列:売上金額(円) |
|---|---|---|---|---|---|
| 1 | 商品名 | カテゴリ | 単価(円) | 在庫数 | 売上金額(円) |
| 2 | 桜餅 | 和菓子 | 180 | 25 | 4500 |
| 3 | マシュマロ | 洋菓子 | 120 | 50 | 6000 |
| 4 | 柏餅 | 和菓子 | 200 | 0 | 0 |
| 5 | チョコ | 洋菓子 | 350 | 8 | 2800 |
| 6 | アボカド | 野菜・果物 | 280 | 15 | 4200 |
| 7 | カボチャ | 野菜・果物 | 150 | 30 | 4500 |
| 8 | マグロ | 鮮魚 | 500 | 3 | 1500 |
1行目はヘッダー行で、2行目以降にデータが入力されているとします。
このサンプルを使いながら、各トラブルの原因と対処法を順番に見ていきましょう。
並び替えのキー
順序
キャンセル
並び替えの基本操作と「データ」タブの昇順・降順ボタンの使い方
Excelで並び替えを行う方法は大きく2種類あります。
ひとつ目は「データ」タブにある「昇順(A→Z)」「降順(Z→A)」ボタンを使う方法で、単一列を基準にした素早い並び替えに向いています。
ふたつ目は「並び替え」ボタンからダイアログを開いて条件を細かく指定する方法で、複数列・複数条件の並び替えに使います。
昇順ボタンを押すと数値なら小さい順、文字列なら辞書順(あいうえお・ABC順)に並び替えられます。
降順ボタンは逆に数値なら大きい順、文字列なら逆辞書順になります。
ショートカットキーとしては、Alt→A→S→Aで昇順、Alt→A→S→Dで降順の並び替えが実行できます。
「先頭行をデータの見出しとして使用する」チェックの重要性
並び替えダイアログを開いたとき、左下にある「先頭行をデータの見出しとして使用する」というチェックボックスの設定が非常に重要です。
このチェックが入っている状態では、1行目のヘッダー行(商品名・カテゴリなど)は並び替えの対象から外され、データ行だけが並び替えられます。
チェックが外れていると、ヘッダー行もデータとして認識されて一緒に並び替えられてしまい、結果としてヘッダーが途中の行に移動するという事態が起こります。
ヘッダーが消えた・見出しがどこかに行ってしまったというトラブルは、このチェックの外れが原因であることがほとんどです。
ダイアログを開いたら、まず最初にこのチェックボックスの状態を確認する習慣をつけましょう。
並び替え前に連番列を追加して元の順番を保持する方法
並び替えを行う前に、補助列として連番(1・2・3…)を入力した列を追加しておくことを強くおすすめします。
並び替えによってデータの順番が変わった後でも、この連番列を基準に昇順で並び替えれば元の順番に戻すことができます。
Ctrl+Zで元に戻せない場面や、ファイルを保存してしまった後のリカバリにも有効です。
連番はROW関数(=ROW()-1など)を使って自動入力することも可能です。
大切なデータを扱う際は、並び替え実行前にファイルをバックアップとして別名保存することも合わせて習慣にしてください。
【操作のポイント】並び替えを行う前に、A列などに連番を入力した補助列を追加しておきましょう。並び替えを失敗しても連番列の昇順で並べ直せば元に戻せます。大切なデータは必ず別名保存でバックアップを取ってから作業してください。
並び替えがぐちゃぐちゃになる4つの原因と具体的な解決策
「並び替えを実行したらデータがぐちゃぐちゃになった」というトラブルには、結合セル・空白行・列の選択ミス・データ型の不一致という4つの主要な原因があります。
それぞれの原因と対処法を詳しく見ていきましょう。
原因①:結合セルがあるとデータの並び順が崩れる
セルが結合されている範囲に対して並び替えを実行しようとすると、「この操作には同じサイズの結合セルが必要です」というエラーが表示されて並び替えが実行できません。
結合セルが一部だけにある場合は、エラーなく実行されたとしても結合されていないセルのデータだけが動いてしまい、結果としてデータの対応関係が崩れてぐちゃぐちゃになります。
対処法は、並び替えを実行する前にすべての結合セルを解除することです。
解除の手順は、結合されているセルを含む範囲を選択し、「ホーム」タブの「セルを結合して中央揃え」のドロップダウンから「セル結合の解除」をクリックします。
結合解除後に空白になったセルには、必要に応じてデータを補完してから並び替えを実行しましょう。
見た目のために結合セルを使っていた場合は、「セルを結合して中央揃え」の代わりに「選択範囲内で中央揃え」を使うと、結合なしで同様の見た目を実現できます。
原因②:空白行・空白列があるとデータが分断される
データの途中に空白行や空白列が入っていると、Excelがその空白を「データ範囲の区切り」と認識してしまいます。
結果として空白より下・空白より右のデータが並び替えの対象外となり、一部だけが並び替えられる・残りが元のまま、という状態になります。
対処法は並び替え前に空白行・空白列を削除するか、データ範囲をドラッグで手動選択してから並び替えを実行することです。
空白行の一括削除には、Ctrl+Gで「ジャンプ」ダイアログを開き、「空白セル」を選択→右クリック→「削除」→「行全体を削除」という手順が効率的です。
意図的に空白行を設けている場合は、並び替えの前に空白行を非表示にするか、ダミー値を入力して連続性を保ってから実行することをおすすめします。
原因③:選択範囲が一列のみで他の列が連動しない
C列だけを選択した状態で昇順ボタンを押した場合、Excelは「C列だけを並び替える」と解釈することがあります。
このとき「並び替えの前に」というダイアログが表示されれば選択範囲の拡張を促してくれますが、表示されないケースもあるため注意が必要です。
ダイアログが表示されずにC列だけが並び替えられると、A列の商品名・B列のカテゴリはそのままになり、データの対応関係が崩れてぐちゃぐちゃになります。
最も安全な操作方法は、データ範囲内のどこか1つのセルをクリックした状態で「並び替え」ダイアログを開き、基準列をプルダウンで指定することです。
Excelはアクティブセルから連続するデータ範囲を自動認識するため、全列が連動して並び替えられます。
原因④:先頭行のチェックが外れてヘッダーが並び替えられてしまう
前述の「先頭行をデータの見出しとして使用する」チェックが外れた状態で並び替えを実行すると、ヘッダー行(商品名・カテゴリなど)もデータとして扱われて一緒に並び替えられます。
文字列ヘッダーが昇順で並んだとき、アルファベットや五十音順によってヘッダーが途中の行に潜り込んでしまい、表がぐちゃぐちゃに見える状態になります。
対処法はCtrl+Zで元に戻し、ダイアログを開いてチェックボックスを確認してから再実行することです。
Excelはデータの状況によってこのチェックを自動で判断しますが、必ずしも正確ではないため、毎回手動で確認することが確実です。
【操作のポイント】並び替えがぐちゃぐちゃになるときの確認順番は、①結合セルの有無、②空白行・空白列の有無、③選択範囲の確認、④先頭行チェックの確認、の4ステップです。この順番でチェックすれば原因をすばやく特定できます。
並び替えで他の列が連動しない原因と確実に解決する方法
「C列の単価だけ並び替えられて、A列の商品名がずれてしまった」というのは、Excelの並び替えで最もよくあるトラブルのひとつです。
原因は範囲選択の方法・ダイアログの選択肢・テーブル化の有無に関係しています。
⚠
並び替えの前に
選択範囲の隣接するデータは選択されていません。
どのように並び替えますか?
キャンセル
「選択範囲を拡張する」と「現在の選択範囲で並び替える」の違いを正しく理解する
1列だけを選択した状態で昇順・降順ボタンを押すと、「並び替えの前に」というダイアログが表示されることがあります。
ここで「選択範囲を拡張する」を選ぶと、隣接するすべての列が自動的に連動して並び替えられます。
「現在の選択範囲で並び替える」を選ぶと、選択したC列の単価だけが並び替えられ、A列の商品名・B列のカテゴリ・D列の在庫数・E列の売上金額はそのままになります。
この選択を誤ると、たとえばC列が「120・150・180・200・280・350・500」に並び替えられても、A列は「桜餅・マシュマロ・柏餅…」のまま元の順序を保つため、「単価120円=桜餅」という誤った対応関係が生じてしまいます。
このダイアログが出たときは、必ず「選択範囲を拡張する」を選ぶことを徹底しましょう。
テーブル機能(Ctrl+T)を使うと連動ミスが起きにくくなる
Excelのテーブル機能(Ctrl+T)を使ってデータをテーブル形式に変換すると、並び替えが常にテーブル全体に対して行われるため列の連動漏れが起きません。
テーブル化されたデータは、ヘッダーに自動的に▼ボタン(フィルタドロップダウン)が追加されます。
この▼ボタンをクリックして「昇順で並べ替え」「降順で並べ替え」を選ぶだけで、常にテーブル全体が連動した正確な並び替えが実行されます。
テーブル機能はフィルタリング・集計・自動拡張など多くの便利機能を同時に利用できるため、データ管理の基本設定として非常におすすめです。
テーブルへの変換は、データ範囲内のセルをクリックしてCtrl+Tを押し、「先頭行をテーブルの見出しとして使用する」にチェックを入れてOKをクリックするだけです。
ダイアログで基準列を明示的に指定するのが最も確実な方法
「データ」タブの「並び替え」ボタンからダイアログを開き、「列」のプルダウンで並び替えの基準列を明示的に指定する方法が最も安全で確実です。
この方法ではExcelがアクティブセルから連続するデータ範囲を自動認識し、全列が対象になります。
「昇順」「降順」だけでなく、「ユーザー設定リスト」を選ぶことで曜日・月名・独自に定義した順序での並び替えも可能になります。
「並び替えのキー」では「セルの値」以外に「セルの色」「フォントの色」「セルのアイコン」も選択でき、条件付き書式と組み合わせた高度な並び替えにも対応しています。
SORT関数・SORTBY関数で元データを変えずに連動した並び替えをする方法
Excel 365・Excel 2021以降では、SORT関数やSORTBY関数を使って元のデータを変えずに並び替えた結果を別の場所に表示することができます。
SORT関数の基本的な書式は以下の通りです。
=SORT(配列, 並び替えインデックス, 並び替え順序, 並び替え基準)
例:=SORT(A2:E8, 3, 1, FALSE)
※A2:E8のデータを3列目(単価)の昇順(1)で、列方向(FALSE)に並び替え
元データのA2:E8をそのまま保持しながら、別の場所に並び替え済みの表を出力できるため、元データを変えずに比較・参照したい場合に非常に有効です。
ただしSORT関数はExcel 365・2021以降の機能であり、旧バージョンのExcelでは使用できない点に注意が必要です。
【操作のポイント】列の連動ミスを防ぐには、並び替えダイアログを開いて基準列をプルダウンで明示指定するのが最も確実です。テーブル化(Ctrl+T)も連動ミスの予防に非常に効果的です。「選択範囲を拡張する」のダイアログが出たら、必ずそちらを選びましょう。
並び替えが一部しかできない・効かないときの原因と対処法
「上のほうは並び替えられているのに、下のほうが元のまま」「特定の行だけ動かない」という状態には、フィルタの残存・シートの保護・グループ化・データ型の不一致といった複数の原因が考えられます。
フィルターが残っていると並び替え対象が絞られる
フィルタで特定の条件に絞り込んだ状態で並び替えを実行すると、表示されている行だけが並び替えの対象になります。
非表示になっているデータは並び替えに含まれないため、フィルタを解除して全データを表示した状態と比較すると「一部しか並び替えられていない」ように見えます。
対処法は、「データ」タブの「クリア」ボタンをクリックしてフィルタの絞り込みを解除してから並び替えを実行することです。
フィルタ自体を完全に取り除く場合は「データ」タブの「フィルター」ボタンをクリックしてオフにします。
シートの保護が設定されていると並び替えができない
シートに保護が設定されている場合、並び替えを実行しようとするとエラーメッセージが表示されて操作できなくなります。
「このシートは保護されています」「変更しようとしているセルは保護されています」というメッセージが出たら、シートの保護が原因です。
「校閲」タブ→「シートの保護の解除」をクリックしてパスワードを入力(設定されている場合)すれば、保護が解除されて通常通り並び替えができるようになります。
会社の共有ファイルや引き継いだファイルではシートが保護されているケースが多いため、並び替えできない場合の最初の確認ポイントとして覚えておきましょう。
パスワードがわからない場合は、ファイルの管理者に問い合わせる必要があります。
行のグループ化・アウトライン設定が並び替えに影響する
Excelのグループ化機能を使って行をまとめている場合、グループが折りたたまれた状態で並び替えを実行すると、非表示の行が対象外になることがあります。
グループ化を解除するには、「データ」タブ→「グループ解除」→「アウトラインのクリア」を選択します。
グループ化を維持したまま並び替えたい場合は、グループをすべて展開した状態で並び替えを実行するようにしましょう。
数値が文字列として入力されていると正しく並ばない
セルに数値が入力されていても、セルの書式が「文字列」に設定されていると数値の大小ではなく文字コード順(辞書順)で並び替えられてしまいます。
たとえば「10・2・30・5・100」という数値が文字列として入力されている場合、昇順に並べると「10・100・2・30・5」という順番になります。
これは先頭の文字から順に比較する辞書順のルールによるもので、数値型であれば正しく「2・5・10・30・100」に並ぶはずのデータです。
セルの左上隅に緑の三角形マーク(エラーインジケーター)が表示されている場合、そのセルに文字列として入力された数値が存在するサインです。
修正方法は複数あり、緑三角のセルを選択して「数値に変換する」を選ぶ方法、「データ」タブの「区切り位置」ウィザードを使う方法、VALUE関数で別列に数値変換する方法などがあります。
| 行 | C列:単価 | 状態 |
| 2 | 100 | 文字列 |
| 3 | 120 | 文字列 |
| 4 | 150 | 文字列 |
| 5 | 180 | 文字列 |
| 6 | 200 | 文字列 |
| 7 | 280 | 文字列 |
| 8 | 50 | 文字列 |
50が最後になる(辞書順)
| 行 | C列:単価 | 状態 |
| 2 | 50 | 数値 |
| 3 | 100 | 数値 |
| 4 | 120 | 数値 |
| 5 | 150 | 数値 |
| 6 | 180 | 数値 |
| 7 | 200 | 数値 |
| 8 | 280 | 数値 |
正しく数値の小さい順に並ぶ
日付データが文字列として認識されていると並び替えが正しくならない
日付の並び替えがおかしい場合も、文字列認識が原因であることが多いです。
「2024/1/5」「2024/10/1」「2024/2/3」という日付が文字列として入力されていると、昇順では「2024/1/5 → 2024/10/1 → 2024/2/3」のように辞書順で並んでしまいます。
Excelが日付として正しく認識している場合はセルに右寄せで表示され、文字列として認識されている場合は左寄せで表示されます。
日付の並び替えがおかしいと感じたら、まずセルの配置(右寄せ・左寄せ)を確認してみましょう。
修正には「区切り位置」ウィザードを使ってYMD形式で日付として変換し直す方法が効果的です。
【操作のポイント】並び替えが一部しか効かないときは、①フィルタの解除、②シート保護の解除、③グループ化の確認、④データ型(文字列・数値・日付)の確認、という順番でチェックしましょう。セルの左上の緑三角と左寄せ表示が「文字列」を見分けるポイントです。
複数列を対象にした並び替えが正しくできない場合の原因と対処法
複数の列を条件に並び替えしたい場合、「うまく複数列が対象にならない」「カテゴリでまとめてから単価順にしたいのにできない」というトラブルも多く見られます。
複数列・複数条件の並び替えには「並び替えダイアログ」のレベル設定が必須です。
並び替えダイアログで複数条件を正しく設定する手順
「データ」タブ→「並び替え」をクリックしてダイアログを開きます。
まず最優先のキーとして「列」のプルダウンでB列「カテゴリ」を選択し、順序を「昇順」に設定します。
次に「レベルの追加」ボタンをクリックし、第2レベルとしてC列「単価(円)」を「昇順」に設定してOKをクリックします。
この設定で、まずカテゴリのあいうえお順に並び替え、同じカテゴリの中では単価の安い順に並ぶ結果になります。
【並び替え後の結果イメージ】
行2:桜餅 和菓子 180円
行3:柏餅 和菓子 200円
行4:マシュマロ 洋菓子 120円
行5:チョコ 洋菓子 350円
行6:マグロ 鮮魚 500円
行7:アボカド 野菜・果物 280円
行8:カボチャ 野菜・果物 150円
※カテゴリの五十音順(和菓子→洋菓子→鮮魚→野菜・果物)で並び、同カテゴリ内は単価の安い順
複数列の並び替えでレベルの優先順位を正しく設定するコツ
複数条件の並び替えで結果がおかしいときは、レベルの優先順位が意図と逆になっていないかを確認しましょう。
「単価→カテゴリ」の順にレベルを設定すると、単価の大小が最優先になるため、カテゴリがバラバラのまま単価順に並んでしまいます。
「最初にどの列でグループ分けしたいか」を明確にしてから優先度の高い列を上位レベルに設定するのがコツです。
レベルの順番は「並び替え」ダイアログ内の▲▼ボタンで後から並べ替えることができます。
第3・第4レベルも追加可能で、より複雑な優先順位の並び替えも対応できます。
SORTBY関数で複数列を条件にした並び替えをする方法
Excel 365・2021以降では、SORTBY関数で複数列を条件にした並び替えを数式で実現できます。
=SORTBY(配列, 基準列1, 順序1, 基準列2, 順序2, …)
例:=SORTBY(A2:E8, B2:B8, 1, C2:C8, 1)
※A2:E8をB列(カテゴリ)の昇順を第1優先、C列(単価)の昇順を第2優先で並び替え
SORTBY関数は元データを変えずに並び替え結果を別のセルに出力するため、元のデータと並び替え後のデータを並べて比較・参照したい場面に特に便利です。
数式が自動的に再計算されるため、元データが更新されると並び替え結果も自動で更新されます。
旧バージョンのExcelではSORTBY関数が使えないため、その場合はダイアログを使った手動並び替えが必要です。
列全体ではなく特定の範囲だけを並び替えたい場合の対処法
表の一部分だけを並び替えたい場合は、対象のセル範囲をドラッグで選択してから「並び替え」ダイアログを開きます。
このとき「先頭行をデータの見出しとして使用する」のチェックを状況に合わせて設定してください。
ただし、範囲を限定した並び替えは隣接する列との連動が切れるリスクがあるため、意図的に一部だけを並び替える必要がある場合に限って使う方法です。
通常は全データを対象にして並び替えた後、必要に応じてフィルタで絞り込む方法のほうが安全です。
【操作のポイント】複数列の並び替えは「並び替え」ダイアログの「レベルの追加」を活用し、優先したい列を上位レベルに設定するのが基本です。Excel 365・2021ではSORTBY関数で元データを変えずに並び替え結果を出力する方法も活用できます。
Excelの並び替えに関するよくある疑問と補足知識
並び替えのトラブル対処法を理解した上で、実務でよく出てくる疑問や追加の知識についても確認しておきましょう。
並び替えを元に戻す方法・アンドゥ(Ctrl+Z)が使えない場合の対処
並び替えを実行した直後であればCtrl+Zで元に戻すことができますが、複数の操作をはさんだ後やファイルを保存した後は元に戻せません。
前述の連番列を使う方法のほかに、「並び替え前」のシートをコピーして別シートとして保存しておく方法も有効です。
シートのコピーはシートタブを右クリック→「移動またはコピー」→「コピーを作成する」にチェックを入れてOKで実行できます。
ユーザー設定リストを使って独自の順番で並び替える方法
「月・火・水・木・金・土・日」のような曜日順や、「東京・大阪・名古屋・福岡」のような独自の順番で並び替えたい場合は、ユーザー設定リストを活用します。
「ファイル」→「オプション」→「詳細設定」→「ユーザー設定リストの編集」から独自の並び順を登録できます。
登録したリストは並び替えダイアログの「順序」プルダウンで「ユーザー設定リスト」として選択でき、五十音・アルファベット・数値の順番では対応できないカスタム順の並び替えが実現します。
並び替えとフィルター・検索機能の使い分け
並び替えは「データの並び順を変える」機能であり、特定のデータを見つけたい場合はフィルター(データ→フィルター)や検索(Ctrl+F)のほうが適していることがあります。
フィルターは元のデータ順を変えずに条件を満たす行だけを表示できるため、並び順を維持しながら特定のデータだけを確認したい場合に向いています。
並び替えとフィルターを組み合わせることで、「特定カテゴリの商品だけを抽出した上で単価順に並べる」といった複合的なデータ整理も効率よく行えます。
【操作のポイント】元の順番への復元が必要になる可能性がある場合は、並び替え前に連番列の追加またはシートのコピーを行っておきましょう。独自の順番での並び替えにはユーザー設定リストが活用できます。
まとめ:Excelの並び替えができない原因を把握してぐちゃぐちゃ・連動しない・複数列トラブルを解消しよう
本記事では、Excelの並び替えができない・ぐちゃぐちゃになる・連動しない・一部しかできないといったトラブルの原因と対処法を詳しく解説しました。
結合セルの解除・空白行の削除・先頭行チェックの確認・フィルタの解除・シート保護の解除・文字列型数値の修正という6つのチェックポイントを押さえることで、ほとんどのトラブルは解決できます。
列が連動しないトラブルには、並び替えダイアログで基準列を明示的に指定する方法とテーブル化(Ctrl+T)が特に効果的です。
複数列の並び替えにはダイアログのレベル追加機能を活用し、優先したい列を上位レベルに設定することで思い通りの並び順が実現します。
Excel 365・2021以降ならSORTBY関数を使って元データを変えずに並び替え結果を出力する方法も非常に便利です。
並び替え前の連番列追加・バックアップ保存の習慣をつけることで、万が一のトラブルにも安心して対応できるようになります。
今回紹介したチェックポイントと対処法を実務に活かして、Excelの並び替えを確実に・正確に使いこなしていきましょう。