SORT関数とSORTBY関数の使い方 – 動的な並び替えをマスター

SORT関数とSORTBY関数の使い方

【結論】「手動の並び替えでミスして表がぐちゃぐちゃに…」そんな悩みを完全解決!

SORT関数とSORTBY関数を使えば、元データを一切壊さず、瞬時に並び替えができます。データ更新も自動追従。Excel 2021/365で使える動的配列関数で、一度の数式入力で結果が自動的に複数セルに展開(スピル)。もう二度と並び替えミスで怒られることはありません。

 

  1. SORT関数とSORTBY関数とは?従来の並べ替えとの決定的な違い
    1. 従来の並べ替え機能の課題
    2. SORT関数・SORTBY関数のメリット
  2. SORT関数の基本構文と使い方
    1. SORT関数の構文
    2. 引数の詳細
    3. SORT関数の実践例1:売上金額の高い順に並べ替え
    4. SORT関数の実践例2:昇順で並び替え(年齢順)
  3. SORTBY関数の基本構文と使い方
    1. SORTBY関数の構文
    2. 引数の詳細
  4. SORT vs SORTBY:どっちを使うべき?完全比較表
    1. 💡 プロのアドバイス
    2. 具体例:列挿入時の挙動の違い
  5. SORTBY関数の実践例:地域別・売上順の2段階並び替え
  6. スピル機能とは?動的配列の仕組みを理解する
    1. スピル機能の動作原理(4ステップ)
    2. スピル範囲演算子「#」の活用
    3. その他の活用例
  7. スピルエラー「#SPILL!」の対処法:よくあるミスと解決策
    1. エラーの視覚的イメージ
    2. ✅ 解決方法(3ステップ)
    3. よくあるミス:範囲の行数不一致(SORTBYの場合)
  8. SORT関数・SORTBY関数の実践的な活用シーン
    1. 活用シーン1:売上ランキングの自動作成
    2. 活用シーン2:在庫管理での優先順位付け
    3. 活用シーン3:顧客リストの多角的分析(3段階並び替え)
    4. 活用シーン4:試験結果の分析と順位表示
  9. SORT/SORTBY関数と他の動的配列関数との組み合わせテクニック
    1. 組み合わせ1:FILTER関数 → 条件抽出→並び替え
    2. 組み合わせ2:UNIQUE関数 → 重複削除→並び替え
    3. 組み合わせ3:SEQUENCE関数 → 順位番号の自動付与
    4. 組み合わせ4:XLOOKUP関数 → 並び替え後の値を検索
  10. SORT関数・SORTBY関数が使えないバージョンでの対処法
    1. バージョン確認方法
    2. 旧バージョンでの代替手段
  11. よくある質問(FAQ)
    1. Q1. SORT関数とSORTBY関数、どちらを使うべきですか?
    2. Q2. 元データを変更すると並び替え結果も自動更新されますか?
    3. Q3. 並び替え結果を別のシートに表示できますか?
    4. Q4. 日本語の五十音順に並び替えできますか?
    5. Q5. テーブル内でSORT関数・SORTBY関数は使えますか?
    6. Q6. 並び替え結果が表示されません。原因は?
    7. Q7. 特定の値を常に最上位または最下位に固定できますか?
    8. Q8. 並び替え結果をコピー&ペースト(値のみ)できますか?
  12. まとめ:SORT関数とSORTBY関数で並び替え作業を革新する
    1. 🎯 重要ポイントの再確認
    2. 📌 実務での活用のコツ(4つの鉄則)
    3. ✨ 最後に:並び替えミスのない世界へ

SORT関数とSORTBY関数とは?従来の並べ替えとの決定的な違い

SORT関数とSORTBY関数は、Excel 2021およびMicrosoft 365で追加された動的配列関数です。従来の「並べ替え」機能との最大の違いは、元のデータを一切変更せずに、別の場所に並び替えた結果を表示できる点にあります。

従来の並べ替え機能の課題

  • 元データが破壊される – 並び替え後、元の順序に戻せない
  • 「ぐちゃぐちゃ問題」のリスク – 範囲選択ミスで関連データがバラバラになる
  • 手動作業が必須 – データ更新のたびに毎回並び替えが必要
  • 複数パターンを保持できない – 売上順と地域順を同時に見られない

 

SORT関数・SORTBY関数のメリット

  • ✅ 元データが完全保護される – 原本は常に安全に保たれる
  • ✅ 動的に自動更新される – 元データ変更で並び替え結果も即座に反映
  • ✅ 複数パターンを並行管理 – 売上順、地域順など異なる視点を同時表示
  • ✅ スピル機能で自動展開 – 1つのセルに数式を入力するだけで結果が広がる
  • ✅ ミス完全防止 – 範囲選択ミスによる「ぐちゃぐちゃ」が物理的に発生しない

 

SORT関数の基本構文と使い方

SORT関数の構文

=SORT(配列, [並べ替えインデックス], [並べ替え順序], [並べ替え基準])

引数の詳細

引数説明必須/省略
配列並べ替えたいセル範囲(例:A2:D10)必須
並べ替えインデックス基準にする列番号(1が最初の列)省略可(省略時は1列目)
並べ替え順序1=昇順(小→大)、-1=降順(大→小)省略可(省略時は昇順)
並べ替え基準FALSE=行方向、TRUE=列方向の並び替え省略可(省略時は行方向)

 

SORT関数の実践例1:売上金額の高い順に並べ替え

📊 元データ(A2:C11)

商品名(A列)地域(B列)売上金額(C列)
ノートPC東京¥520,000
マウス大阪¥8,500
キーボード東京¥23,000
モニター名古屋¥85,000
タブレット東京¥390,000

📝 数式(E2セルに入力)

=SORT(A2:C11, 3, -1)

🔍 結果の解説

  • A2:C11 – 並べ替える範囲全体(商品名・地域・売上の3列)
  • 3左から3列目(売上金額)を基準に並び替え
  • -1 – 降順(金額の高い順)

この数式をE2セルに入力してEnterを押すだけで、売上金額の高い順に並び替えられたデータがE2から下方向に自動的にスピル(展開)されます。元データ(A2:C11)は一切変更されません。

✅ 並び替え後のイメージ(E2セル以降に自動展開)

商品名地域売上金額
ノートPC東京¥520,000
タブレット東京¥390,000
モニター名古屋¥85,000
キーボード東京¥23,000
マウス大阪¥8,500

 

SORT関数の実践例2:昇順で並び替え(年齢順)

=SORT(A2:B10, 2, 1)
  • 2 – 2列目(年齢)を基準
  • 1 – 昇順(若い順:20歳 → 30歳 → 40歳…)

 

SORTBY関数の基本構文と使い方

SORTBY関数の構文

=SORTBY(配列, 並べ替え基準1, [並べ替え順序1], [並べ替え基準2], [並べ替え順序2], ...)

 

引数の詳細

引数説明必須/省略
配列並べ替えたいセル範囲必須
並べ替え基準1最優先で基準にする列の範囲(例:B2:B10)必須
並べ替え順序11=昇順、-1=降順省略可(省略時は昇順)
並べ替え基準2以降第2、第3の基準列の範囲(最大126個まで指定可能)省略可

 

 

SORT vs SORTBY:どっちを使うべき?完全比較表

迷った時の判断基準をシンプルにまとめます。

比較項目SORT関数SORTBY関数
並び替え基準基本的に1つの列(または行)複数の列を明確に指定可能(最大126個)
基準の指定方法列番号(インデックス)
例:3(左から3列目)
セル範囲で直接指定
例:C2:C10
⚠️ 列挿入時の挙動❌ 弱い – 列を挿入すると番号がズレて数式が壊れる✅ 強い – 範囲参照のため自動追従する
複雑な並び替えネスト(入れ子)が必要で複雑化引数を追加するだけで直感的
列方向の並び替え対応(第4引数でTRUE指定)対応(基準範囲を行範囲で指定)
適したケース1つの列での単純・高速な並び替え複数条件での優先順位付き並び替え
メンテナンス性重視の運用

 

💡 プロのアドバイス

基本的には「SORTBY関数」をメインに使うのがおすすめです。
理由:列を挿入・削除しても数式が壊れにくいため、メンテナンス性が圧倒的に向上します。特にチームで共有する業務用ファイルでは、SORTBY関数の「範囲指定」が威力を発揮します。

 

具体例:列挿入時の挙動の違い

【SORT関数の場合】

=SORT(A2:D10, 3, -1) ← 3列目(C列)を基準に並び替え

→ この後、B列とC列の間に新しい列を挿入すると…
❌ 数式は「3列目」のまま変わらないため、意図しない列(元のD列)を基準に並び替えてしまう

【SORTBY関数の場合】

=SORTBY(A2:D10, C2:C10, -1) ← C列の範囲を基準に並び替え

B列とC列の間に列を挿入しても…
✅ C列の範囲参照が自動的にD列にシフトするため、数式が正しく動作し続ける

 

SORTBY関数の実践例:地域別・売上順の2段階並び替え

📊 元データ(A2:C11)

商品名(A列)地域(B列)売上金額(C列)
ノートPC東京¥520,000
マウス大阪¥8,500
キーボード東京¥23,000
モニター大阪¥85,000
タブレット東京¥390,000
スピーカー名古屋¥45,000

📝 数式(E2セルに入力)

=SORTBY(A2:C11, B2:B11, 1, C2:C11, -1)

🔍 結果の解説

  • A2:C11 – 並べ替える全範囲
  • B2:B11, 1第1優先:地域列(B列)で昇順(あいうえお順)
  • C2:C11, -1第2優先:売上金額列(C列)で降順(高い順)

✅ 並び替え後のイメージ(E2セル以降に自動展開)

商品名地域売上金額
【大阪グループ】
モニター大阪¥85,000
マウス大阪¥8,500
【名古屋グループ】
スピーカー名古屋¥45,000
【東京グループ】
ノートPC東京¥520,000
タブレット東京¥390,000
キーボード東京¥23,000

この数式により、まず地域ごとにグループ化され、同じ地域内では売上金額の高い順に並び替えられます。大阪エリアの商品は売上順に、東京エリアの商品も売上順に自動整列します。

 

スピル機能とは?動的配列の仕組みを理解する

スピル(Spill)とは、1つのセルに入力した数式の結果が、隣接する複数のセルに自動的に「こぼれる(展開される)」機能です。SORT関数とSORTBY関数は、このスピル機能を前提とした動的配列関数です。

スピル機能の動作原理(4ステップ)

  1. SORT関数またはSORTBY関数を1つのセルに入力
  2. Enterキーを押すと、関数が返す結果の行数・列数が自動計算される
  3. 必要な範囲に結果が自動的に展開される(手動コピー不要)
  4. 元データが変更されると、スピル範囲もリアルタイムで自動更新される

スピル範囲演算子「#」の活用

スピルされた範囲全体を参照する際は、先頭セルに「#」を付けることで範囲全体を指定できます。

=SUM(E2#) ← E2セルから展開された全範囲の合計

E2セルに入力されたSORT関数の結果全体(E2からスピルされた全セル)を合計します。データが10行でも100行でも、動的に範囲が変わっても自動的に対応します。

その他の活用例

=COUNTA(E2#) ← 並び替え後のデータ件数をカウント
=AVERAGE(G2#) ← スピル範囲内の平均値を計算

 

スピルエラー「#SPILL!」の対処法:よくあるミスと解決策

スピル範囲に既存データ・結合セル・数式があると#SPILL!エラーが発生します。

エラーの視覚的イメージ

E列F列G列
#SPILL!商品名地域
(展開できない)← ここに邪魔なデータ
⚠️ エラーメッセージ例:
「スピル範囲が空ではないため、SPILLできません」

✅ 解決方法(3ステップ)

  1. #SPILL!エラーが出ているセルをクリック
  2. 表示されるエラーアイコン(点線の枠)で「障害物の位置」を確認
  3. 以下のいずれかを実施:
    • スピル先のセル範囲を空にする(データを削除または移動)
    • 結合セルを解除する(ホーム → セルを結合して中央揃え → 解除)
    • 数式を入力するセルの位置を変更する(別の列に移動)

よくあるミス:範囲の行数不一致(SORTBYの場合)

❌ =SORTBY(A2:C11, B2:B10, 1) ← 配列は10行なのに基準は9行

エラーメッセージ:「配列の行数または列数が一致していません」

✅ =SORTBY(A2:C11, B2:B11, 1) ← 配列も基準も10行で一致
💡 ポイント:SORTBY関数では、「配列」と「並べ替え基準」の行数を必ず揃える必要があります。セル範囲を指定する際は、開始行と終了行を必ず確認しましょう。

 

SORT関数・SORTBY関数の実践的な活用シーン

活用シーン1:売上ランキングの自動作成

毎月更新される売上データから、常に最新の売上ランキングを自動生成できます。

=SORT(A2:C100, 3, -1)

売上データ(C列)が更新されるたびに、ランキングが自動的に再計算されます。月次報告書作成時の手動並び替え作業が完全に不要になります。

活用シーン2:在庫管理での優先順位付け

=SORTBY(A2:E50, D2:D50, 1, E2:E50, -1)
  • 第1優先:在庫切れ警告フラグ(D列)昇順 → 在庫切れ商品を最上位表示
  • 第2優先:需要予測スコア(E列)降順 → 需要の高い商品を優先

発注業務で「今日どの商品を優先的に発注すべきか」が一目瞭然になります。

活用シーン3:顧客リストの多角的分析(3段階並び替え)

=SORTBY(A2:F500, C2:C500, 1, E2:E500, -1, F2:F500, -1)
  • 第1優先:地域(C列)昇順 → 地域別にグループ化
  • 第2優先:購入金額(E列)降順 → 高額顧客を上位表示
  • 第3優先:購入回数(F列)降順 → 同額の場合はリピート率で判定

営業戦略で「どのエリアの、どの顧客を優先的にフォローすべきか」が明確になります。

活用シーン4:試験結果の分析と順位表示

=SORTBY(A2:D100, B2:B100, -1, C2:C100, -1)
  • 第1優先:総合点(B列)降順 → 高得点順
  • 第2優先:小テスト(C列)降順 → 同点の場合の判定基準

成績表の作成時に、公平な順位付けが自動化されます。

 

SORT/SORTBY関数と他の動的配列関数との組み合わせテクニック

組み合わせ1:FILTER関数 → 条件抽出→並び替え

=SORT(FILTER(A2:C100, B2:B100="東京"), 3, -1)

処理の流れ:

  1. FILTER関数で東京地域のデータのみを抽出
  2. 抽出結果をSORT関数で売上金額(3列目)の降順に並び替え

「東京エリアの売上トップ10」のような地域限定ランキングが瞬時に作成できます。

 

組み合わせ2:UNIQUE関数 → 重複削除→並び替え

=SORT(UNIQUE(A2:A100), 1, 1)

処理の流れ:

  1. UNIQUE関数でA列のリストから重複を削除
  2. SORT関数で昇順に並び替え

「ユニークな商品名リスト(五十音順)」などを作成する際に有効です。

 

組み合わせ3:SEQUENCE関数 → 順位番号の自動付与

=HSTACK(SEQUENCE(ROWS(E2#)), E2#)

処理の流れ:

  1. E2# – SORT関数で並び替えた結果(スピル範囲)
  2. ROWS(E2#) – スピル範囲の行数を取得
  3. SEQUENCE – 1から始まる連番を生成(1, 2, 3…)
  4. HSTACK – 連番と並び替え結果を横に結合

結果イメージ:

順位商品名地域売上金額
1ノートPC東京¥520,000
2タブレット東京¥390,000
3モニター名古屋¥85,000

 

 

組み合わせ4:XLOOKUP関数 → 並び替え後の値を検索

=XLOOKUP("ノートPC", E2#, G2#)

並び替え後のリスト(E2#)から「ノートPC」を検索し、対応する売上金額(G2#)を取得します。

 

 

SORT関数・SORTBY関数が使えないバージョンでの対処法

SORT関数とSORTBY関数は、Excel 2021およびMicrosoft 365でのみ使用可能です。Excel 2019以前のバージョンでは使用できません。

バージョン確認方法

  1. Excelを起動
  2. ファイル」タブをクリック
  3. アカウント」を選択
  4. 右側の「Excel のバージョン情報」をクリックして確認
ExcelバージョンSORT/SORTBY関数スピル機能
Microsoft 365✅ 使用可能✅ 使用可能
Excel 2021✅ 使用可能✅ 使用可能
Excel 2019❌ 使用不可❌ 使用不可
Excel 2016以前❌ 使用不可❌ 使用不可

 

旧バージョンでの代替手段

  • 従来の並べ替え機能:「ホーム」タブ → 「並べ替えとフィルター」→「ユーザー設定の並べ替え」
  • テーブル機能:データ範囲をテーブル化(Ctrl+T)し、列見出しのフィルターボタンで並び替え
  • VBAマクロ:自動化が必要な場合はマクロで実装
  • Power Query:データの取得と変換機能で並び替えクエリを作成
⚠️ 注意:これらの方法では元データが変更されるか、または手動更新が必要になるため、SORT関数・SORTBY関数のような「非破壊的な自動並び替え」は実現できません。可能であればExcel 2021またはMicrosoft 365へのアップグレードを推奨します。

 

よくある質問(FAQ)

Q1. SORT関数とSORTBY関数、どちらを使うべきですか?

A. 基本的にはSORTBY関数を推奨します。理由は以下の3点です。

  • 複数条件の指定が直感的(引数を追加するだけ)
  • 列の挿入・削除に強い(範囲参照のため自動追従)
  • 後からの条件追加が容易(メンテナンス性が高い)

ただし、単純に1列だけで高速に並び替えたい場合はSORT関数でも十分です。

Q2. 元データを変更すると並び替え結果も自動更新されますか?

A. はい、リアルタイムで自動更新されます。動的配列関数の特性により、元データが変わるとスピル範囲の結果も即座に再計算されます。手動での再並び替えは一切不要です。

Q3. 並び替え結果を別のシートに表示できますか?

A. 可能です。数式内の範囲指定をシート名付きで記述すれば、別シートのデータを参照して並び替えできます。

=SORT(Sheet1!A2:C100, 3, -1)
=SORTBY(データ!A2:C100, データ!B2:B100, 1, データ!C2:C100, -1)

Q4. 日本語の五十音順に並び替えできますか?

A. はい、昇順(1)を指定すれば自動的に五十音順(あいうえお順)に並び替えられます。Excelは日本語のロケール設定を認識し、適切に処理します。

Q5. テーブル内でSORT関数・SORTBY関数は使えますか?

A. はい、構造化参照を使用できます。

=SORT(テーブル1[#すべて], 2, -1)
=SORTBY(売上テーブル[#すべて], 売上テーブル[地域], 1, 売上テーブル[売上金額], -1)

構造化参照を使うと、列名で指定できるため可読性が向上します。

Q6. 並び替え結果が表示されません。原因は?

A. 以下の項目を順番に確認してください。

  1. バージョン確認 – Excel 2021またはMicrosoft 365を使用しているか
  2. スピルエラー#SPILL!エラーが出ていないか(展開先に障害物がないか)
  3. 参照範囲の確認 – セル範囲が正しく指定されているか
  4. 行数の一致(SORTBY) – 配列と並べ替え基準の行数が揃っているか
  5. 循環参照 – 数式が自分自身を参照していないか

Q7. 特定の値を常に最上位または最下位に固定できますか?

A. 可能です。補助列を作成し、優先順位フラグを設定してからSORTBY関数で並び替えます。

例:「重要」フラグが付いた商品を常に最上位表示

=SORTBY(A2:C100, D2:D100, 1, C2:C100, -1)
  • D列に「重要」=1、「通常」=2 のフラグを設定
  • 第1優先:D列(フラグ)昇順 → 重要商品が上位
  • 第2優先:C列(売上)降順 → 同じグループ内で売上順

Q8. 並び替え結果をコピー&ペースト(値のみ)できますか?

A. はい、可能です。

  1. スピル範囲全体を選択(先頭セルをクリックすると自動的に全範囲が選択される)
  2. Ctrl+C でコピー
  3. 貼り付け先で右クリック → 「値」を選択してペースト

この方法で、数式ではなく値のみを固定できます。

 

 

まとめ:SORT関数とSORTBY関数で並び替え作業を革新する

SORT関数とSORTBY関数は、Excel業務における並び替え作業を根本から変える画期的な機能です。

🎯 重要ポイントの再確認

項目内容
SORT関数1つの列を基準にシンプルに並び替え(列番号で指定)
SORTBY関数複数の列を基準に優先順位付きで並び替え(範囲で指定)
元データ保護原本を一切変更せず、別の場所に結果を表示
自動更新元データの変更に追従して動的に再計算
スピル機能1つの数式で複数セルに結果を自動展開
メンテナンス性SORTBYは列挿入に強く、長期運用に適している
対応バージョンExcel 2021 / Microsoft 365 のみ

📌 実務での活用のコツ(4つの鉄則)

  1. 元データシートと分析シートを分離する
    • 元データは入力専用シートで保護
    • 並び替え結果は別シート(「分析」「ランキング」など)で表示
    • 誤って元データを破壊するリスクをゼロに
  2. 複数の並び替えパターンを並行管理する
    • 同じデータから「売上順」「地域順」「日付順」など複数の視点を同時表示
    • ダッシュボード形式で一覧性を確保
  3. 他の動的配列関数と組み合わせる
    • FILTER(条件抽出)→ SORT(並び替え)→ 上位10件のみ表示
    • UNIQUE(重複削除)→ SORT(整列)→ マスタリスト作成
    • XLOOKUP・SEQUENCE・HSTACKなどとの連携で高度な分析を実現
  4. スピル範囲演算子「#」を積極活用する
    • 後続の集計式でE2#のように範囲を動的に参照
    • データ件数が変動しても数式の修正不要

✨ 最後に:並び替えミスのない世界へ

SORT関数とSORTBY関数をマスターすることで、以下のような劇的な変化が実現します。

  • 作業時間が1/10に – 手動並び替えの繰り返しが完全自動化
  • ミスゼロ – 範囲選択ミスによる「表がぐちゃぐちゃ」が物理的に発生しない
  • リアルタイム分析 – データ更新と同時に最新ランキングが確定
  • 複数視点の同時管理 – 異なる並び替えパターンを並行表示
  • チーム共有が安全 – 元データが保護されるため複数人での運用も安心

ぜひ今日から日々の業務に取り入れて、Excelスキルを次のレベルへ引き上げてください。動的配列関数は、これからのExcel業務における必須スキルです。

著者
古見遊 正

流通業で働きながら、2005年からWindowsを使い続けている80年代生まれのサラリーマン。ExcelとPowerPointを極め、仕事の効率化を追求中。苦手だったWordも克服中!Excelを使いこなせるだけで周囲から『神扱い』されるけれど、そのせいで『システムに詳しい人』だと勘違いされがち。でも、それが新しい知識を得るきっかけになった。そんな経験を活かして、Excel・PowerPoint・Word・Windowsの時短ワザ&仕事術を発信中!

古見遊 正をフォローする
Excel関数

コメント

タイトルとURLをコピーしました