【Excel】SORT・SORTBY関数で表を自動並び替えする方法

【Excel】SORT・SORTBY関数で表を自動並び替えする方法
🛡️ 超解決

Excelで表のデータを手作業で並び替える作業は時間がかかります。しかも、元のデータが更新されるたびに並び替えをやり直す手間が発生します。SORT関数とSORTBY関数を使えば、元のデータを変更せずに、別の場所に並び替えられた結果を自動で表示できます。

これらの動的配列関数を活用することで、データの入力状況に応じて並び替え結果が常に最新の状態に保たれます。この記事では、SORT関数とSORTBY関数の基本的な使い方から、複数条件での並び替え、特定の順序での並び替えまで、具体的な操作手順を詳しく解説します。この記事を読み終える頃には、あなたのExcel業務におけるデータ並び替え作業が劇的に効率化されるでしょう。

【要点】SORT・SORTBY関数でExcelデータを動的に並び替える

  • SORT関数: 指定した範囲のデータを基準となる列に基づいて並び替えます。
  • SORTBY関数: 別の配列や範囲で指定した順序に従ってデータを並び替えます。
  • 複数条件での並び替え: 複数の列を基準にデータを並び替えることで、より複雑な順序を実現します。

ADVERTISEMENT

SORT・SORTBY関数とは?動的な並び替えの概要

SORT関数とSORTBY関数は、Excel for Microsoft 365で利用できる動的配列関数です。これらの関数は、元のデータを直接操作することなく、指定した条件に基づいて並び替えられた結果を新しい範囲に自動で展開します。これにより、手動での並び替え作業で発生する「元のデータの変更」「更新忘れ」といった問題を防ぐことができます。

手動の並び替え機能とは異なり、SORT関数やSORTBY関数は数式として機能します。そのため、元のデータに変更があった場合でも、数式の結果が自動的に再計算され、常に最新の並び替え結果が表示されます。これは、リアルタイムで変化するデータを扱うビジネス環境において、非常に強力な機能となります。

これらの関数を使うことで、元のデータはそのままに、特定の条件でソートされたリストを複数作成したり、ダッシュボードに最新のランキングデータを表示したりといった応用が可能になります。ただし、これらの動的配列関数はExcel for Microsoft 365およびExcel for Webのみで利用できる機能です。Excel2019やExcel2021などの永続ライセンス版では利用できません。

SORT関数でできること

SORT関数は、指定したデータ範囲を、その範囲内の特定の列を基準に並び替える場合に役立ちます。例えば、売上データ全体を「売上高」列で降順に並び替えたり、「製品名」列で昇順に並び替えたりできます。複数の列を並び替えの基準にすることも可能です。これは、Excelの標準的な並び替え機能と似ていますが、数式として動的に機能する点が大きな違いです。

SORTBY関数でできること

SORTBY関数は、SORT関数よりも柔軟な並び替えができます。この関数は、並び替えの対象となるデータ範囲とは「別の」範囲や配列を基準にしてデータを並び替えることが可能です。例えば、従業員リストを、リストには含まれていない「評価点マトリクス」の順序に従って並び替えたり、ユーザーが独自に定義した「カスタムの並び替え順序」に基づいて並び替えたりする場合に非常に有効です。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

SORT関数を使った基本的な並び替え手順

まずはSORT関数の基本的な使い方から習得しましょう。単一の列を基準にする場合と、複数の列を基準にする場合の手順を解説します。

  1. SORT関数の基本構文を確認する
    SORT関数は以下の構文で記述します。
    =SORT(配列, 並び替え基準列, 並び替え順序, [列で並び替えるか])

    • 配列: 並び替えたいデータが含まれる範囲や配列を指定します。
    • 並び替え基準列: 配列内で、並び替えの基準とする列の番号を数字で指定します。
    • 並び替え順序: 昇順の場合は1、降順の場合は-1を指定します。
    • [列で並び替えるか]: 省略可能です。FALSEまたは0を指定すると行方向で並び替え、TRUEまたは1を指定すると列方向で並び替えます。通常は省略します。
  2. 単一条件での並び替えを実行する
    例えば、A1からC10のデータ範囲があり、2列目「売上高」を降順に並び替える場合です。数式を入力したいセル(例: E1)に次のように入力します。
    =SORT(A1:C10, 2, -1)
    この数式を入力すると、指定した範囲のデータが「売上高」列に基づいて降順に並び替えられ、E1セルを起点として自動的に展開されます。
  3. 複数条件での並び替えを実行する
    複数の列を基準に並び替える場合は、並び替え基準列と並び替え順序の引数を配列定数として指定します。
    例えば、A1からD10のデータ範囲で、1列目「部署」を昇順、次に2列目「売上高」を降順に並び替える場合です。数式を入力したいセルに次のように入力します。
    =SORT(A1:D10, {1;2}, {1;-1})
    「{1;2}」は1列目と2列目を基準にすることを示し、「{1;-1}」は1列目は昇順、2列目は降順で並び替えることを示します。

SORTBY関数を使った柔軟な並び替え手順

SORTBY関数は、より複雑な条件や外部の並び替え基準を用いてデータを並び替えたい場合に非常に強力です。ここでは、その応用的な使い方を解説します。

  1. SORTBY関数の基本構文を確認する
    SORTBY関数は以下の構文で記述します。
    =SORTBY(配列, 並び替え基準配列1, 並び替え順序1, [並び替え基準配列2, 並び替え順序2], ...)

    • 配列: 並び替えたいデータが含まれる範囲や配列を指定します。
    • 並び替え基準配列1: 並び替えの基準となる値が含まれる範囲や配列を指定します。
    • 並び替え順序1: 昇順の場合は1、降順の場合は-1を指定します。
    • [並び替え基準配列2, 並び替え順序2], …: 2つ目以降の並び替え基準を指定します。
  2. 別の列の順序に従って並び替える
    元のデータ範囲(A1:C10)を、別の列(例: D1:D10)の数値に基づいて並び替えたい場合です。D列には並び替えの優先順位が書かれているとします。数式を入力したいセル(例: E1)に次のように入力します。
    =SORTBY(A1:C10, D1:D10, 1)
    この数式は、A1:C10のデータをD1:D10の値を昇順に並び替えた結果に従って展開します。元のデータにはない「D列の順序」を基準にできる点が特徴です。
  3. カスタムリストで特定の順序に並び替える
    特定の文字列(例: 部署名)を、Excelの昇順・降順ではなく、独自の順序(例: 「営業部」「開発部」「管理部」)で並び替えたい場合です。
    この場合、MATCH関数とSORTBY関数を組み合わせます。まず、カスタムの並び替え順序をどこかのセル範囲に記述します(例: F1:F3に「営業部」「開発部」「管理部」)。
    元のデータ範囲がA1:C10で、1列目「部署」をカスタム順序で並び替える場合、数式を入力したいセルに次のように入力します。
    =SORTBY(A1:C10, MATCH(INDEX(A1:C10,,1), F1:F3, 0), 1)

    • INDEX(A1:C10,,1): 元データ範囲の1列目「部署」の値を抽出します。
    • MATCH(..., F1:F3, 0): 抽出した部署名がカスタムリストF1:F3の何番目にあるかを数値で返します。
    • SORTBY(...): このMATCH関数が返す数値(順序)に基づいてデータを並び替えます。

ADVERTISEMENT

SORT・SORTBY関数利用時の制限と対処法

SORT関数とSORTBY関数は強力な機能ですが、いくつかの制限や注意点があります。これらを理解し、適切に対処することが重要です。

Excel2019/2021では利用できない

SORT関数およびSORTBY関数を含む動的配列関数は、Excel for Microsoft 365およびExcel for Web専用の機能です。Excel2019やExcel2021といった永続ライセンス版では使用できません。
これらのバージョンをご利用の場合は、「データ」タブにある「並べ替えとフィルター」機能を手動で利用するか、VBAでマクロを作成して自動化する必要があります。

#SPILL!エラーが発生してしまう

SORT関数やSORTBY関数は、結果を複数のセルに自動で展開します。この展開先のセル範囲に、すでに何らかのデータが入力されていると、「#SPILL!」エラーが発生します。
エラーを解消するためには、数式を入力したセルから右方向、下方向へ展開されるであろう範囲にある不要なデータをすべて削除し、空白のセル範囲を確保してください。

基準列のデータ型が混在しているとうまくいかない

並び替え基準とする列に、数値と文字列が混在している場合、期待通りの並び替え結果が得られないことがあります。Excelは、文字列と数値を異なるデータ型として扱います。
並び替えを行う前に、基準となる列のデータ型を統一してください。例えば、数値を文字列として扱いたい場合はTEXT関数を使用する、あるいは文字列中の不要なスペースや非表示文字をTRIM関数やCLEAN関数で除去するといった前処理が有効です。

並び替え順序が期待と異なる

昇順と降順の指定が間違っていたり、複数条件の指定順序が意図と異なっていたりすると、期待する並び替え結果は得られません。
SORT関数では、並び替え順序引数に昇順なら1、降順なら-1を正しく指定してください。複数条件の場合は、並び替え基準列と並び替え順序の配列定数の順番が対応しているかを確認してください。

SORT関数とSORTBY関数の機能比較

SORT関数とSORTBY関数は、どちらもデータを並び替える機能を提供しますが、その用途や柔軟性には違いがあります。それぞれの特徴を理解し、状況に応じて使い分けましょう。

項目 SORT関数 SORTBY関数
主な用途 指定範囲内の既存列を基準とした並び替え 別の範囲やカスタム順序に基づく柔軟な並び替え
並び替え基準の指定 指定した配列内の列番号 指定した配列外の任意の配列や範囲、数式の結果
柔軟性 比較的シンプルで直感的な並び替え より高度で応用的な並び替えが可能
カスタム順序での並び替え 直接指定はできない MATCH関数などと組み合わせてカスタム順序を適用できる
引数の構成 簡潔な引数で完結 基準を複数指定できるため、引数が長くなることがある

まとめ

この記事では、ExcelのSORT関数とSORTBY関数を使って、表のデータを自動で並び替える具体的な方法を解説しました。これらの動的配列関数を活用することで、手動での並び替え作業から解放され、常に最新の並び替え結果を自動で取得できるようになります。元のデータに変更があっても自動で更新されるため、データ分析やレポート作成の効率が大幅に向上します。

今回学んだSORT関数とSORTBY関数は、FILTER関数やUNIQUE関数などの他の動的配列関数と組み合わせることで、さらに高度なデータ抽出や集計、レポート作成に応用できます。ぜひ、これらの関数を駆使して、日々のExcel業務をスマートに自動化してください。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】