g735|SORTよりも柔軟!ExcelのSORTBY関数で思い通りにデータを並べ替える方法

前回の記事では、SORT関数を使って表全体を並べ替える方法を解説しました。今回は、その兄弟とも言えるもう一つの強力な並べ替え関数、SORTBY(ソートバイ)を紹介します。

SORTBY関数は、SORT関数と同様に動的な並べ替えを行いますが、「並べ替えの基準となる列」をより柔軟に指定できるという大きな特長があります。この違いを理解すれば、あなたのデータ分析スキルはさらに向上するでしょう。

目次

今回のゴール:4月度売上表を「合計」列を基準に並べ替える

SORT関数と同じく、以下の「4月度売上表」を、E列の「合計」金額が大きい順(降順)に並べ替えます。今回はこのお題をSORTBY関数を使って解決してみましょう。

サンプルデータ

以下は、上記画像のExcelデータですので、ダウンロードして練習として使用ください。

Excel-g735-1.xlsx (ダウンロード)

以下のサンプルデータをExcelシートにコピーして、操作の準備をしてください。

ABCDE
14月度売上表(万円)
2店舗衣料品雑貨食品合計
3朝顔店8681,9511,9234,742
4あやめ店1,0311,6878863,604
5紫陽花店1,2361,8061,5004,542
6桔梗店1,7381,5862,0555,379

解決策:SORTBY関数の使い方

並べ替えた表を表示したい先頭のセル(例では G3)に、以下の数式を一度だけ入力します。

Excel

=SORTBY(A3:E6, E3:E6, -1)

数式を入力してEnterキーを押すと、SORT関数と同様に、結果が自動的に展開(スピル)され、合計の高い順に並べ替えられた表が完成します。

数式の解説

SORTBY関数の基本的な構文は次の通りです。

SORTBY(配列,基準配列1,[順序1],…)

  1. 配列 (array): A3:E6
    • 並べ替えた結果として表示したいデータ範囲全体を指定します。SORT関数と同じです。
  2. 基準配列1 (by_array1): E3:E6
    • 【最重要ポイント】 並べ替えの基準として使用するセル範囲を指定します。今回は「合計」列を基準にしたいので、E3:E6の範囲を指定します。この配列の行数は、引数1の「配列」の行数と一致している必要があります。
  3. 順序1 (sort_order1): -1
    • 基準配列1をどのような順序で並べ替えるかを指定します。
      • 1 または省略:昇順(小さい順)
      • -1降順(大きい順)
    • 今回は合計が「高い順」なので、「-1」(降順)を指定します。

この数式は、「A3:E6の範囲を、E3:E6(合計列)の値に基づいて降順(-1)で並べ替えてください」という命令を実行しています。

SORTとSORTBY、どちらを使うべき?

どちらも似ていますが、明確な違いがあります。

  • SORT関数: 並べ替えの基準を列番号(例: 5)で指定します。シンプルで分かりやすいのが利点です。
  • SORTBY関数: 並べ替えの基準をセル範囲(例: E3:E6)で指定します。これにより、数式がどの列を参照しているか直感的に分かりやすく、列の挿入などによるエラーが起きにくいという利点があります。また、並べ替えの基準が、結果として表示したい表の外側にあっても良いため、より柔軟な使い方が可能です。

例えば、「社員リスト(表示したい配列)を、別の場所にある入社年月日リスト(基準配列)の順に並べ替える」といった場合にSORTBYは真価を発揮します。

まとめ

SORTBY関数は、SORT関数よりもセマンティック(意味が分かりやすい)で、柔軟性の高い並べ替えを実現します。どちらの関数も非常に強力ですが、特に並べ替えの基準が複雑な場合や、数式の可読性を高めたい場合にはSORTBY関数がおすすめです。

状況に応じてこの2つの関数を使い分け、データ分析の効率を最大限に高めましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次