Excelの並べ替え方法|数字の昇順・降順+できない原因と対処法
まずは基本操作を解説し、最後にVBA自動化コードも紹介します
Sub SortAscending()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, “A”).End(xlUp).Row
ws.Sort.SortFields.Clear
ws.Sort.SortFields.Add2 _
Key:=ws.Range(“A2:A” & lastRow), _
Order:=xlAscending
With ws.Sort
.SetRange ws.Range(“A1:E” & lastRow)
.Header = xlYes
.Apply
End With
MsgBox “昇順に並べ替えました!”
End Sub
Sub SortMultipleKeys()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, “A”).End(xlUp).Row
ws.Sort.SortFields.Clear
‘1番目の条件:B列(部署)を昇順
ws.Sort.SortFields.Add2 _
Key:=ws.Range(“B2:B” & lastRow), _
Order:=xlAscending
‘2番目の条件:D列(売上)を降順
ws.Sort.SortFields.Add2 _
Key:=ws.Range(“D2:D” & lastRow), _
Order:=xlDescending
With ws.Sort
.SetRange ws.Range(“A1:E” & lastRow)
.Header = xlYes
.Apply
End With
MsgBox “部署(昇順)→売上(降順)で並べ替えました!”
End Sub
Excelで数字を並べ替える基本操作
Excelの並べ替え機能を使えば、数字データを昇順(小→大)または降順(大→小)にワンクリックで整列できます。売上データや点数表など、数値を含む表の整理に欠かせない基本操作です。
昇順・降順で並べ替える手順
データ範囲内であれば、どのセルでもOKです。Excelが自動的にデータ範囲を検出します。
「昇順」(AZ↓アイコン)は小さい順、「降順」(ZA↓アイコン)は大きい順に並べ替えます。
選択した列を基準に、行全体がまとめて並べ替えられます。他の列のデータもセットで移動するので安心です。
並べ替えの前にセルを1つだけ選択するのがコツです。範囲選択すると「選択範囲だけ」を並べ替えるか確認ダイアログが出て、誤操作の原因になります。
右クリックから並べ替える方法
リボンを使わず、右クリックメニューからも並べ替えできます。
- 並べ替えたい列のセルを右クリック
- 「並べ替え」→「昇順」または「降順」を選択
操作結果はリボンからの並べ替えと同じです。マウス操作で完結するため、直感的に操作できます。
複数条件で並べ替える方法
「部署ごとに並べ替えて、さらに売上順に並べたい」など、複数の条件で並べ替えたい場合は並べ替えダイアログを使います。
並べ替えダイアログの使い方
表内のどこかのセルをクリックします。
並べ替えダイアログが開きます。
「最優先されるキー」で列と順序(昇順/降順)を選びます。
「次に優先されるキー」で2番目の列と順序を指定します。最大64レベルまで追加可能です。
設定した優先順位に従って並べ替えが実行されます。
社員名簿を「部署(昇順)」→「入社年(降順)」で並べ替えると、部署ごとに新しい社員から順に表示できます。
「先頭行をデータの見出しとして使用する」の確認
並べ替えダイアログ右上の「先頭行をデータの見出しとして使用する」にチェックが入っているか必ず確認してください。チェックが外れていると、見出し行もデータとして並べ替えの対象になってしまいます。
並べ替えができない・正しく動かない5つの原因
「並べ替えたのに順番がおかしい」「エラーが出る」という場合、以下の原因が考えられます。
原因1:数値が文字列として保存されている
最も多い原因です。セルの左上に緑色の三角マークが表示されている場合、その数値は文字列として保存されています。文字列の「10」は数値の「2」より前に来るため、1, 10, 11, 2, 20…のような順番になります。
- 該当セルを選択 → 緑の三角マークをクリック →「数値に変換」を選択
- または、空のセルに「1」と入力 → コピー → 対象セル範囲を選択 →「形式を選択して貼り付け」→「乗算」で一括変換
原因2:結合セルがある
並べ替え範囲に結合セルが含まれていると、エラーメッセージが表示されて並べ替えできません。並べ替え前に「ホーム」タブ →「セルを結合して中央揃え」をクリックして結合を解除してください。
原因3:空白行がある
データの途中に空白行があると、Excelは空白行の手前までしかデータ範囲として認識しません。空白行を削除するか、並べ替え前に範囲を手動で選択してください。
原因4:非表示の行・列がある
フィルターや手動で非表示にした行がある場合、非表示行は並べ替えの対象外になります。並べ替え前にすべての行・列を再表示するのが安全です。
原因5:日付の表示形式が不統一
日付データの場合、一部が文字列で入力されていると正しく並べ替えできません。「2026/1/15」と「2026年1月15日」が混在すると、文字列として認識されるセルが正しい順序に並びません。DATEVALUE関数で日付型に統一してから並べ替えましょう。
=DATEVALUE("2026年1月15日")
知っておくと便利な並べ替えテクニック
元の順番に戻せるように連番列を追加する
並べ替えた後に「やっぱり元の順番に戻したい」と思っても、Ctrl+Zで戻せないことがあります(保存後など)。あらかじめ連番列を作っておけば、その列で並べ替えるだけで元の順序に復元できます。
A列に連番を入力する例:
A1: No.
A2: 1
A3: 2
↓ オートフィルで連番を入力
並べ替え後、A列(No.)の昇順で元に戻せます
横方向(列単位)の並べ替え
通常の並べ替えは行単位(縦方向)ですが、列単位(横方向)の並べ替えも可能です。
- 「データ」タブ →「並べ替え」をクリック
- 「オプション」ボタンをクリック
- 「列単位」を選択 →「OK」
- 並べ替えの基準行を指定して実行
月別データを1月→12月の順に並べ直したいときなどに便利です。
セルの色で並べ替える
並べ替えダイアログで「並べ替えのキー」を「セルの色」に変更すると、色付きセルを先頭や末尾にまとめられます。条件付き書式で色分けしたデータを整理するときに活用できます。
VBAで並べ替えを自動化する方法
毎回同じ条件で並べ替える作業が発生する場合、VBAマクロで自動化すると効率的です。以下はA列を基準に昇順で並べ替えるマクロです。
基本の並べ替えマクロ(昇順)
Sub SortAscending()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
ws.Sort.SortFields.Clear
ws.Sort.SortFields.Add2 _
Key:=ws.Range("A2:A" & lastRow), _
Order:=xlAscending
With ws.Sort
.SetRange ws.Range("A1:E" & lastRow)
.Header = xlYes
.Apply
End With
MsgBox "昇順に並べ替えました!"
End Sub
- Cells(Rows.Count, “A”).End(xlUp).Row:A列の最終行を自動取得
- SortFields.Add2:並べ替えキーを指定(Key=基準列、Order=順序)
- .Header = xlYes:1行目を見出しとして除外
- .SetRange:並べ替え対象範囲(A〜E列)を指定
複数条件の並べ替えマクロ
2つ以上の条件で並べ替えるには、SortFields.Add2を複数回呼び出します。
Sub SortMultipleKeys()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
ws.Sort.SortFields.Clear
'1番目の条件:B列(部署)を昇順
ws.Sort.SortFields.Add2 _
Key:=ws.Range("B2:B" & lastRow), _
Order:=xlAscending
'2番目の条件:D列(売上)を降順
ws.Sort.SortFields.Add2 _
Key:=ws.Range("D2:D" & lastRow), _
Order:=xlDescending
With ws.Sort
.SetRange ws.Range("A1:E" & lastRow)
.Header = xlYes
.Apply
End With
MsgBox "部署(昇順)→ 売上(降順)で並べ替えました!"
End Sub
VBA開発・GAS連携・Webアプリ化まで、
業務に合わせた最適な自動化をご提案します。
LINEでExcelを気軽に学べる
よくある質問
Q. 並べ替えたら他の列のデータがずれてしまいました
一部のセル範囲だけを選択して並べ替えると、選択範囲外の列はそのまま残るためデータがずれます。並べ替える前にセルを1つだけ選択し、Excelにデータ範囲を自動検出させてください。「現在選択されている範囲を並べ替えますか?」と聞かれたら「選択範囲を拡張する」を選びましょう。
Q. 数字が1, 10, 11, 2, 20…の順になってしまいます
数値が文字列として保存されています。セル左上の緑の三角マークが目印です。該当セルを選択 → エラーマークをクリック →「数値に変換」で修正できます。大量にある場合は「データ」タブ →「区切り位置」→ そのまま「完了」でも一括変換できます。
Q. 並べ替えを元に戻す方法はありますか?
Ctrl+Zで直前の並べ替えを元に戻せますが、ファイルを保存・閉じた後は戻せません。あらかじめ連番列(No.列)を作っておけば、いつでも元の順序に戻せます。並べ替え前にファイルのバックアップを取るのも有効です。
Q. フィルターと並べ替えの違いは何ですか?
並べ替えはデータの「順番」を変える機能、フィルターは条件に合うデータだけを「表示」する機能です。並べ替えはすべてのデータが残りますが、フィルターは条件に合わないデータが非表示になります。両方を組み合わせると、特定のデータだけを抽出してから並べ替えることもできます。
Q. 並べ替えのショートカットキーはありますか?
標準のショートカットキーはありませんが、Alt → D → S で並べ替えダイアログを開けます(アクセスキー)。また、Alt → A → SA で昇順、Alt → A → SD で降順の並べ替えが可能です。
並べ替えと合わせて使うと便利な機能も確認してみてください。


実際の操作手順をクリックして体験できます。各ステップをクリックしてみましょう。
| A | B | C | |
|---|---|---|---|
| 1 | 名前 | 点数 | クラス |
| 2 | 田中 | 78 | B |
| 3 | 佐藤 | 92 | A |
| 4 | 鈴木 | 65 | C |
| 5 | 高橋 | 85 | A |
| 6 | |||
| 2 | 鈴木 | 65 | C |
| 3 | 田中 | 78 | B |
| 4 | 高橋 | 85 | A |
| 5 | 佐藤 | 92 | A |
| 6 | |||
| 2 | 佐藤 | 92 | A |
| 3 | 高橋 | 85 | A |
| 4 | 田中 | 78 | B |
| 5 | 鈴木 | 65 | C |
| 6 |
💡 VBAの実行結果は記事冒頭のインタラクティブデモで確認できます。
まとめ
Excelで数字を並べ替える方法を基本から応用まで解説しました。
- 基本操作:セルを1つ選択 →「データ」タブ →「昇順」or「降順」
- 複数条件:並べ替えダイアログで「レベルの追加」を使う
- 1, 10, 2…問題:数値が文字列になっている →「数値に変換」で解決
- 元に戻す準備:連番列を事前に追加しておく
- VBA自動化:Sort.SortFields.Add2で繰り返し作業を効率化
