cellio

ExcelのSORT関数・SORTBY関数の使い方:自動更新される並び替え

ExcelやGoogleスプレッドシートのSORT関数・SORTBY関数の使い方を徹底解説。元データを崩さず、降順・昇順や複数列での並び替えを自動更新する数式のテクニックを学べます。

著者 Ayoub Farid · · 3 分で読めます

リボンの「並べ替え」ボタンは、その場でデータを1回だけ並び替えます。一方、SORT関数を使えば、元データが変更されるたびに自動で並び替わるコピーを別のセルに作成できます。ランキング表やトップ10リスト、ダッシュボードの作成に最適です。

Microsoft 365、Excel 2021以降、Excel for the web、およびGoogleスプレッドシート(引数の仕様が若干異なります)で利用可能です。

構文(Excel)

=SORT(array, [sort_index], [sort_order], [by_col])
  • sort_index(並べ替え順数): どの列を基準に並び替えるか(1 = 最初の列)
  • sort_order(並べ替え順序): 1 = 昇順(デフォルト)、-1 = 降順

使用例

セル範囲 A2:C50 を3列目を基準にして、値が大きい順(降順)に並び替えます。

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

名前のリストを五十音順(アルファベット順)に並び替えます。

=SORT(A2:A50)

複数の列を基準に並び替える

カテゴリ(2列目)を昇順(A–Z)で並び替え、さらに売上(3列目)を降順(高い順)で並び替えます。

=SORT(A2:C50,{2,3},{1,-1})

SORTBY:結果に表示しない列を基準に並び替える

=SORTBY(A2:A50,C2:C50,-1)

売上列は表示せず、売上順に並び替えた名前のリストだけを取り出せます。

トップ5(上位5件)の抽出

=TAKE(SORT(A2:C50,3,-1),5)

TAKE関数はMicrosoft 365で使用できます。Googleスプレッドシートでは =ARRAY_CONSTRAIN(SORT(A2:C50,3,FALSE),5,3) を使用してください。

Googleスプレッドシートでの構文

=SORT(A2:C50,3,FALSE)

Googleスプレッドシートでは、列番号は指定したセル範囲内での絶対的な位置となり、並び替え順序は TRUE(昇順)または FALSE(降順)で指定します。

FILTER関数やUNIQUE関数と組み合わせる

=SORT(UNIQUE(C2:C200))
=SORT(FILTER(A2:C200,C2:C200="Coffee"),3,-1)

詳細については、UNIQUE 関数および FILTER 関数の解説記事をご覧ください。

よくある質問

Excelの数式でデータを並び替えるにはどうすればよいですか?

=SORT(範囲,列番号,順序) を使用します。例:=SORT(A2:C50,3,-1)

SORT関数とSORTBY関数の違いは何ですか?

SORT関数は抽出するセル範囲内にある列を基準に並び替えます。一方、SORTBY関数は表示対象外の別のセル範囲を基準に並び替えることができます。

SORT関数を使うと元のデータも変更されますか?

いいえ、変更されません。元のデータはそのまま残り、別のセルに並び替えられたコピーが出力されます。

SORT関数で #SPILL! エラーが出るのはなぜですか?

数式の結果が展開(スピル)される先のセルに、すでに文字やデータが入力されており、空白ではないためです。

あわせて読みたい