
【結論】「手動の並び替えでミスして表がぐちゃぐちゃに…」そんな悩みを完全解決!
SORT関数とSORTBY関数を使えば、元データを一切壊さず、瞬時に並び替えができます。データ更新も自動追従。Excel 2021/365で使える動的配列関数で、一度の数式入力で結果が自動的に複数セルに展開(スピル)。もう二度と並び替えミスで怒られることはありません。
- SORT関数とSORTBY関数とは?従来の並べ替えとの決定的な違い
- SORT関数の基本構文と使い方
- SORTBY関数の基本構文と使い方
- SORT vs SORTBY:どっちを使うべき?完全比較表
- SORTBY関数の実践例:地域別・売上順の2段階並び替え
- スピル機能とは?動的配列の仕組みを理解する
- スピルエラー「#SPILL!」の対処法:よくあるミスと解決策
- SORT関数・SORTBY関数の実践的な活用シーン
- SORT/SORTBY関数と他の動的配列関数との組み合わせテクニック
- SORT関数・SORTBY関数が使えないバージョンでの対処法
- よくある質問(FAQ)
- まとめ:SORT関数とSORTBY関数で並び替え作業を革新する
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) | 必須 |
| 並べ替え順序1 | 1=昇順、-1=降順 | 省略可(省略時は昇順) |
| 並べ替え基準2以降 | 第2、第3の基準列の範囲(最大126個まで指定可能) | 省略可 |
SORT vs SORTBY:どっちを使うべき?完全比較表
迷った時の判断基準をシンプルにまとめます。
| 比較項目 | SORT関数 | SORTBY関数 |
|---|---|---|
| 並び替え基準 | 基本的に1つの列(または行) | 複数の列を明確に指定可能(最大126個) |
| 基準の指定方法 | 列番号(インデックス) 例: 3(左から3列目) | セル範囲で直接指定 例: C2:C10 |
| ⚠️ 列挿入時の挙動 | ❌ 弱い – 列を挿入すると番号がズレて数式が壊れる | ✅ 強い – 範囲参照のため自動追従する |
| 複雑な並び替え | ネスト(入れ子)が必要で複雑化 | 引数を追加するだけで直感的 |
| 列方向の並び替え | 対応(第4引数でTRUE指定) | 対応(基準範囲を行範囲で指定) |
| 適したケース | 1つの列での単純・高速な並び替え | 複数条件での優先順位付き並び替え メンテナンス性重視の運用 |
💡 プロのアドバイス
理由:列を挿入・削除しても数式が壊れにくいため、メンテナンス性が圧倒的に向上します。特にチームで共有する業務用ファイルでは、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ステップ)
- SORT関数またはSORTBY関数を1つのセルに入力
- Enterキーを押すと、関数が返す結果の行数・列数が自動計算される
- 必要な範囲に結果が自動的に展開される(手動コピー不要)
- 元データが変更されると、スピル範囲もリアルタイムで自動更新される
スピル範囲演算子「#」の活用
スピルされた範囲全体を参照する際は、先頭セルに「#」を付けることで範囲全体を指定できます。
=SUM(E2#) ← E2セルから展開された全範囲の合計E2セルに入力されたSORT関数の結果全体(E2からスピルされた全セル)を合計します。データが10行でも100行でも、動的に範囲が変わっても自動的に対応します。
その他の活用例
=COUNTA(E2#) ← 並び替え後のデータ件数をカウント
=AVERAGE(G2#) ← スピル範囲内の平均値を計算
スピルエラー「#SPILL!」の対処法:よくあるミスと解決策
スピル範囲に既存データ・結合セル・数式があると#SPILL!エラーが発生します。
エラーの視覚的イメージ
| E列 | F列 | G列 |
|---|---|---|
| #SPILL! | 商品名 | 地域 |
| (展開できない) | ← ここに邪魔なデータ | |
「スピル範囲が空ではないため、SPILLできません」
✅ 解決方法(3ステップ)
- #SPILL!エラーが出ているセルをクリック
- 表示されるエラーアイコン(点線の枠)で「障害物の位置」を確認
- 以下のいずれかを実施:
- スピル先のセル範囲を空にする(データを削除または移動)
- 結合セルを解除する(ホーム → セルを結合して中央揃え → 解除)
- 数式を入力するセルの位置を変更する(別の列に移動)
よくあるミス:範囲の行数不一致(SORTBYの場合)
❌ =SORTBY(A2:C11, B2:B10, 1) ← 配列は10行なのに基準は9行エラーメッセージ:「配列の行数または列数が一致していません」
✅ =SORTBY(A2:C11, B2:B11, 1) ← 配列も基準も10行で一致
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)処理の流れ:
- FILTER関数で東京地域のデータのみを抽出
- 抽出結果をSORT関数で売上金額(3列目)の降順に並び替え
「東京エリアの売上トップ10」のような地域限定ランキングが瞬時に作成できます。
組み合わせ2:UNIQUE関数 → 重複削除→並び替え
=SORT(UNIQUE(A2:A100), 1, 1)処理の流れ:
- UNIQUE関数でA列のリストから重複を削除
- SORT関数で昇順に並び替え
「ユニークな商品名リスト(五十音順)」などを作成する際に有効です。
組み合わせ3:SEQUENCE関数 → 順位番号の自動付与
=HSTACK(SEQUENCE(ROWS(E2#)), E2#)処理の流れ:
E2#– SORT関数で並び替えた結果(スピル範囲)ROWS(E2#)– スピル範囲の行数を取得SEQUENCE– 1から始まる連番を生成(1, 2, 3…)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以前のバージョンでは使用できません。
バージョン確認方法
- Excelを起動
- 「ファイル」タブをクリック
- 「アカウント」を選択
- 右側の「Excel のバージョン情報」をクリックして確認
| Excelバージョン | SORT/SORTBY関数 | スピル機能 |
|---|---|---|
| Microsoft 365 | ✅ 使用可能 | ✅ 使用可能 |
| Excel 2021 | ✅ 使用可能 | ✅ 使用可能 |
| Excel 2019 | ❌ 使用不可 | ❌ 使用不可 |
| Excel 2016以前 | ❌ 使用不可 | ❌ 使用不可 |
旧バージョンでの代替手段
- 従来の並べ替え機能:「ホーム」タブ → 「並べ替えとフィルター」→「ユーザー設定の並べ替え」
- テーブル機能:データ範囲をテーブル化(Ctrl+T)し、列見出しのフィルターボタンで並び替え
- VBAマクロ:自動化が必要な場合はマクロで実装
- Power Query:データの取得と変換機能で並び替えクエリを作成
よくある質問(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. 以下の項目を順番に確認してください。
- バージョン確認 – Excel 2021またはMicrosoft 365を使用しているか
- スピルエラー –
#SPILL!エラーが出ていないか(展開先に障害物がないか) - 参照範囲の確認 – セル範囲が正しく指定されているか
- 行数の一致(SORTBY) – 配列と並べ替え基準の行数が揃っているか
- 循環参照 – 数式が自分自身を参照していないか
Q7. 特定の値を常に最上位または最下位に固定できますか?
A. 可能です。補助列を作成し、優先順位フラグを設定してからSORTBY関数で並び替えます。
例:「重要」フラグが付いた商品を常に最上位表示
=SORTBY(A2:C100, D2:D100, 1, C2:C100, -1)- D列に「重要」=1、「通常」=2 のフラグを設定
- 第1優先:D列(フラグ)昇順 → 重要商品が上位
- 第2優先:C列(売上)降順 → 同じグループ内で売上順
Q8. 並び替え結果をコピー&ペースト(値のみ)できますか?
A. はい、可能です。
- スピル範囲全体を選択(先頭セルをクリックすると自動的に全範囲が選択される)
- Ctrl+C でコピー
- 貼り付け先で右クリック → 「値」を選択してペースト
この方法で、数式ではなく値のみを固定できます。
まとめ:SORT関数とSORTBY関数で並び替え作業を革新する
SORT関数とSORTBY関数は、Excel業務における並び替え作業を根本から変える画期的な機能です。
🎯 重要ポイントの再確認
| 項目 | 内容 |
|---|---|
| SORT関数 | 1つの列を基準にシンプルに並び替え(列番号で指定) |
| SORTBY関数 | 複数の列を基準に優先順位付きで並び替え(範囲で指定) |
| 元データ保護 | 原本を一切変更せず、別の場所に結果を表示 |
| 自動更新 | 元データの変更に追従して動的に再計算 |
| スピル機能 | 1つの数式で複数セルに結果を自動展開 |
| メンテナンス性 | SORTBYは列挿入に強く、長期運用に適している |
| 対応バージョン | Excel 2021 / Microsoft 365 のみ |
📌 実務での活用のコツ(4つの鉄則)
- 元データシートと分析シートを分離する
- 元データは入力専用シートで保護
- 並び替え結果は別シート(「分析」「ランキング」など)で表示
- 誤って元データを破壊するリスクをゼロに
- 複数の並び替えパターンを並行管理する
- 同じデータから「売上順」「地域順」「日付順」など複数の視点を同時表示
- ダッシュボード形式で一覧性を確保
- 他の動的配列関数と組み合わせる
- FILTER(条件抽出)→ SORT(並び替え)→ 上位10件のみ表示
- UNIQUE(重複削除)→ SORT(整列)→ マスタリスト作成
- XLOOKUP・SEQUENCE・HSTACKなどとの連携で高度な分析を実現
- スピル範囲演算子「#」を積極活用する
- 後続の集計式で
E2#のように範囲を動的に参照 - データ件数が変動しても数式の修正不要
- 後続の集計式で
✨ 最後に:並び替えミスのない世界へ
SORT関数とSORTBY関数をマスターすることで、以下のような劇的な変化が実現します。
- 作業時間が1/10に – 手動並び替えの繰り返しが完全自動化
- ミスゼロ – 範囲選択ミスによる「表がぐちゃぐちゃ」が物理的に発生しない
- リアルタイム分析 – データ更新と同時に最新ランキングが確定
- 複数視点の同時管理 – 異なる並び替えパターンを並行表示
- チーム共有が安全 – 元データが保護されるため複数人での運用も安心
ぜひ今日から日々の業務に取り入れて、Excelスキルを次のレベルへ引き上げてください。動的配列関数は、これからのExcel業務における必須スキルです。











コメント