Excel中級者

Excelの並べ替え方法|数字の昇順・降順+できない原因と対処法

しんたろ。
この操作、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
マクロ実行前後の並び順の変化を確認できます
📊 社員データ.xlsx – Excel
A(社員番号)
B(名前)
C(部署)
D(売上)
E(評価)
2
E003
田中一郎
営業部
980
S
3
E001
山田太郎
開発部
340
B
4
E005
中村健太
開発部
620
A
5
E002
佐藤花子
営業部
750
A
6
E006
小林浩二
総務部
210
C
7
E004
伊藤麻衣
総務部
430
B
Sheet16件のデータ
A列(社員番号)で昇順に並べ替えました! E001 → E002 → E003 → E004 → E005 → E006 の順に整列されました。

‘ B列(部署)昇順 → D列(売上)降順の2段階ソート
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
2段階ソートの結果を確認できます(色で部署を識別)
営業部(売上↓)
開発部(売上↓)
総務部(売上↓)
📊 社員データ.xlsx – Excel
A(社員番号)
B(部署)
C(名前)
D(売上)
E(評価)
2
E001
開発部
山田太郎
340
B
3
E002
営業部
佐藤花子
750
A
4
E003
営業部
田中一郎
980
S
5
E004
総務部
伊藤麻衣
430
B
6
E005
開発部
中村健太
620
A
7
E006
総務部
小林浩二
210
C
Sheet12条件ソート完了
部署(昇順)→ 売上(降順)で並べ替えました! 営業部・開発部・総務部の順に整列し、各部署内では売上が高い順になっています。

Excelで数字を並べ替える基本操作

Excelの並べ替え機能を使えば、数字データを昇順(小→大)または降順(大→小)にワンクリックで整列できます。売上データや点数表など、数値を含む表の整理に欠かせない基本操作です。

昇順・降順で並べ替える手順

並べ替えたい列のセルを1つクリック

データ範囲内であれば、どのセルでもOKです。Excelが自動的にデータ範囲を検出します。

「データ」タブ →「昇順」または「降順」をクリック

「昇順」(AZ↓アイコン)は小さい順、「降順」(ZA↓アイコン)は大きい順に並べ替えます。

並べ替え完了

選択した列を基準に、行全体がまとめて並べ替えられます。他の列のデータもセットで移動するので安心です。

ポイント

並べ替えの前にセルを1つだけ選択するのがコツです。範囲選択すると「選択範囲だけ」を並べ替えるか確認ダイアログが出て、誤操作の原因になります。

右クリックから並べ替える方法

リボンを使わず、右クリックメニューからも並べ替えできます。

  1. 並べ替えたい列のセルを右クリック
  2. 「並べ替え」→「昇順」または「降順」を選択

操作結果はリボンからの並べ替えと同じです。マウス操作で完結するため、直感的に操作できます。

複数条件で並べ替える方法

「部署ごとに並べ替えて、さらに売上順に並べたい」など、複数の条件で並べ替えたい場合は並べ替えダイアログを使います。

並べ替えダイアログの使い方

データ範囲内のセルを選択

表内のどこかのセルをクリックします。

「データ」タブ →「並べ替え」をクリック

並べ替えダイアログが開きます。

1つ目の条件を設定

「最優先されるキー」で列と順序(昇順/降順)を選びます。

「レベルの追加」で2つ目以降の条件を追加

「次に優先されるキー」で2番目の列と順序を指定します。最大64レベルまで追加可能です。

「OK」をクリックで実行

設定した優先順位に従って並べ替えが実行されます。

使用例

社員名簿を「部署(昇順)」→「入社年(降順)」で並べ替えると、部署ごとに新しい社員から順に表示できます。

「先頭行をデータの見出しとして使用する」の確認

並べ替えダイアログ右上の「先頭行をデータの見出しとして使用する」にチェックが入っているか必ず確認してください。チェックが外れていると、見出し行もデータとして並べ替えの対象になってしまいます。

並べ替えができない・正しく動かない5つの原因

「並べ替えたのに順番がおかしい」「エラーが出る」という場合、以下の原因が考えられます。

並べ替えトラブル5つの原因チェックリスト
並べ替えできない5つの原因

原因1:数値が文字列として保存されている

最も多い原因です。セルの左上に緑色の三角マークが表示されている場合、その数値は文字列として保存されています。文字列の「10」は数値の「2」より前に来るため、1, 10, 11, 2, 20…のような順番になります。

対処法
  1. 該当セルを選択 → 緑の三角マークをクリック →「数値に変換」を選択
  2. または、空のセルに「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.)の昇順で元に戻せます

横方向(列単位)の並べ替え

通常の並べ替えは行単位(縦方向)ですが、列単位(横方向)の並べ替えも可能です。

  1. 「データ」タブ →「並べ替え」をクリック
  2. 「オプション」ボタンをクリック
  3. 「列単位」を選択 →「OK」
  4. 並べ替えの基準行を指定して実行

月別データを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
Excel業務の自動化
その手作業、自動化しませんか?

VBA開発・GAS連携・Webアプリ化まで、
業務に合わせた最適な自動化をご提案します。

1,600部ツール販売実績
15年製造業の業務経験
無料で相談する →
初回相談無料・お見積りだけでもOK
期間限定でChatGPT✖︎Googleスプレットシートのコンテンツ配布中!

LINEでExcelを気軽に学べる

しんたろ。
しんたろ。
Excel歴10年以上 → アプリ開発者
Profile
大手メーカーに15年以上勤務。製造部門で海外拠点の立ち上げ支援や、現場責任者として採算管理・納期管理・設備オペレートを経験。 2023年にDX人材育成プログラム第1期生として活動後、現在は製造現場のスケジュール運用を支えるアプリの企画・開発をメインに活動中。工程表示表作成の内製化SaaSを構築し、年間1,300万円のコスト改善を実現。 Excelによる業務改善で年間240時間の残業削減を達成した経験を活かし、ブログやSNSでも情報発信しています。
プロフィールを読む

よくある質問

Q. 並べ替えたら他の列のデータがずれてしまいました

一部のセル範囲だけを選択して並べ替えると、選択範囲外の列はそのまま残るためデータがずれます。並べ替える前にセルを1つだけ選択し、Excelにデータ範囲を自動検出させてください。「現在選択されている範囲を並べ替えますか?」と聞かれたら「選択範囲を拡張する」を選びましょう。

Q. 数字が1, 10, 11, 2, 20…の順になってしまいます

数値が文字列として保存されています。セル左上の緑の三角マークが目印です。該当セルを選択 → エラーマークをクリック →「数値に変換」で修正できます。大量にある場合は「データ」タブ →「区切り位置」→ そのまま「完了」でも一括変換できます。

Q. 並べ替えを元に戻す方法はありますか?

Ctrl+Zで直前の並べ替えを元に戻せますが、ファイルを保存・閉じた後は戻せません。あらかじめ連番列(No.列)を作っておけば、いつでも元の順序に戻せます。並べ替え前にファイルのバックアップを取るのも有効です。

Q. フィルターと並べ替えの違いは何ですか?

並べ替えはデータの「順番」を変える機能、フィルターは条件に合うデータだけを「表示」する機能です。並べ替えはすべてのデータが残りますが、フィルターは条件に合わないデータが非表示になります。両方を組み合わせると、特定のデータだけを抽出してから並べ替えることもできます。

Q. 並べ替えのショートカットキーはありますか?

標準のショートカットキーはありませんが、Alt → D → S で並べ替えダイアログを開けます(アクセスキー)。また、Alt → A → SA で昇順、Alt → A → SD で降順の並べ替えが可能です。

並べ替えと合わせて使うと便利な機能も確認してみてください。

Excelフィルターで複数条件を抽出する方法|オートフィルター・詳細設定・FILTER関数を完全解説
Excelフィルターで複数条件を抽出する方法|オートフィルター・詳細設定・FILTER関数を完全解説
Excelで「元に戻す」ができない原因と対処法|Ctrl+Z・回数上限・復元方法を完全解説
Excelで「元に戻す」ができない原因と対処法|Ctrl+Z・回数上限・復元方法を完全解説
💻 操作を体験してみよう!

実際の操作手順をクリックして体験できます。各ステップをクリックしてみましょう。

X 並べ替えデモ.xlsx – Excel
ファイル ホーム 挿入 データ 表示
☝ 表内をクリックして右クリックメニューを表示
👉 「並べ替え」をクリックしてサブメニューを表示
👉 「昇順」または「降順」を選択して結果を確認
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
✅ 点数の昇順(65 → 78 → 85 → 92)で並べ替え完了!
✅ 点数の降順(92 → 85 → 78 → 65)で並べ替え完了!
1 並べ替えたいセル範囲を選択
2 右クリックしてコンテキストメニューを表示
3 「並べ替え」にカーソルを合わせてサブメニューを表示
4 「昇順」または「降順」を選択して並べ替え完了

💡 VBAの実行結果は記事冒頭のインタラクティブデモで確認できます。

まとめ

Excelで数字を並べ替える方法を基本から応用まで解説しました。

この記事のまとめ
  • 基本操作:セルを1つ選択 →「データ」タブ →「昇順」or「降順」
  • 複数条件:並べ替えダイアログで「レベルの追加」を使う
  • 1, 10, 2…問題:数値が文字列になっている →「数値に変換」で解決
  • 元に戻す準備:連番列を事前に追加しておく
  • VBA自動化:Sort.SortFields.Add2で繰り返し作業を効率化

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT ME
しんたろ。
しんたろ。
Excel歴10年以上 → アプリ開発者
大手メーカーに15年以上勤務。製造部門で海外拠点の立ち上げ支援や、現場責任者として採算管理・納期管理・設備オペレートを経験。 2023年にDX人材育成プログラム第1期生として活動後、現在は製造現場のスケジュール運用を支えるアプリの企画・開発をメインに活動中。工程表示表作成の内製化SaaSを構築し、年間1,300万円のコスト改善を実現。 Excelによる業務改善で年間240時間の残業削減を達成した経験を活かし、ブログやSNSでも情報発信しています。
記事URLをコピーしました