更新日:、 作成日:

エクセル SORT 関数:配列を並べ替えする

はじめに

エクセルの SORT 関数の使い方を紹介します。

SORT 関数はセルの範囲や配列を並べ替えした配列を取得します。主に配列に使用します。

=SORT(A1:B3,1) のようにして、セルの範囲を列「A」の昇順で並べ替えできます。

=SORT(A1:B3,1,-1) のようにして、セルの範囲を列「A」の降順で並べ替えできます。

=SORT(A1:B3,{1,2}) のようにして、セルの範囲を列「A」で並べ替えし、同じ値のときは列「B」の昇順で並べ替えできます。

=SORT(A1:C2,1,1,TRUE) のようにして、セルの範囲を行「1」の昇順で並べ替えできます。

範囲外の値で並べ替えするには「SORTBY 関数」を使用します。
並べ替えをする方法は「並び替えをする」をご覧ください。
この関数は 365 または 2021 から使用できます。

SORT 関数の引数

SORT(範囲)
範囲の 1 列目を昇順で行単位に並べ替えした配列を取得します。

SORT(範囲, インデックス, 順序, 方向)
インデックス範囲の何行目または何列目で並べ替えるかを指定できます。順序で降順に並べ替えるように指定できます。方向で列単位に並べ替えるように指定できます。

引数「範囲」セルの範囲や配列を指定します。
引数「インデックス」省略できます。省略すると引数「範囲」の 1 行目または 1 列目で並べ替えをします。
引数「方向」が FALSE なら、引数「範囲」の何列目で並べ替えるかを指定します。
引数「方向」が TRUE なら、引数「範囲」の何行目で並べ替えるかを指定します。
セルの範囲や配列を指定して、複数の行や列で並べ替えられます。
引数「順序」省略できます。
1 または省略:昇順で並べ替えます。
-1:降順で並べ替えます。
引数「方向」省略できます。
FALSE または省略:行単位で並べ替えます。
TRUE:列単位で並べ替えます。
スピル化

スピル化:セルの範囲や配列を指定すると結果が「スピル」します。

結果が最初から配列のため、セルの範囲や配列を指定してもその通りにはスピルされません。

使い方

SORT 関数の使い方を紹介します。

結果は配列になり複数のセルに表示されます。これはスピルという機能によるものです。詳しくは「スピル、動的配列数式の使い方」をご覧ください。

行単位で昇順に並べ替えする

1 列目の名前を行単位で昇順に並べ替えします。

=SORT(B3:C6)
=SORT(B3:C6,1)
1

2 列目の個数を行単位で昇順に並べ替えします。

=SORT(B3:C6,2)
2

行単位で降順に並べ替えする

2 列目の個数を行単位で降順に並べ替えします。

=SORT(B3:C6,2,-1)
3

列単位で昇順に並べ替えする

1 行目を列単位で昇順に並べ替えします。

=SORT(C2:F3,,,TRUE)
=SORT(C2:F3,1,1,TRUE)
4

複数の列で並べ替えする

1 列目の名前に同じ値があるときに 2 列目の個数で並べ替えします。, または ; で区切った配列で、複数の列や行を指定できます。

=SORT(B3:D6,{1,2})
=SORT(B3:D6,1)

1 列目の名前だけで並べ替えると、それ以外の順番は必ず出現した順になります。名前が A のとき、値が 1, 3 の順に出現します。名前を昇順でも降順に並べ替えても必ず 1, 3 の順に並べ替えられます。

9

日付を並べ替えする

日付を並べ替えします。

=SORT(B3:C6)

結果が数値になっているのは日付の実際の値が数値だからです。セルの書式設定を指定して日付形式に表示できます。

6

文字列を並べ替えする

数値や日付、文字列など混在した値を並べ替えします。

=SORT(B4:D23)

数値をその値の順番に並べ替えした後に、その他を文字列として左側の文字から 1 文字ずつ次の順で並べ替えます。

数値空白記号英字 (アルファベット) 大文字小文字カタカナひらがな絵文字漢字漢字 (Unicode)空のセル

8

高度な使い方

SORT 関数と他の関数を組み合わせた使い方などを紹介します。

抽出した結果を並び替えする

値が 30 以上の行を抽出して、値の降順で並び替えをします。「FILTER 関数」を使用して条件に一致した行を抽出できます。

=SORT(FILTER(B3:D7,D3:D7>=30),3,-1)
17

解説

引数「順序」の昇順とは小さい順です。1, 2, 3 … 。降順とは大きい順です。3, 2, 1 …

引数「インデックス」が引数「範囲」の行数や列数を超えるときはエラー #VALUE! になります。

SORT と SORTBY の違い

SORT 関数と「SORTBY 関数」の違いは、主に並べ替える対象にあります。

  • SORT 関数:主に配列を並べ替えします。「FILTER 関数」などから取得した配列を並べ替えます。並べ替える範囲をそのまま取得します。
  • SORTBY 関数:主にセルの範囲を並べ替えします。取得する範囲と並べ替える範囲を別に指定できます。

文字列の順番

ABCADE を並べ替えるときは、左側の文字から 1 文字ずつ比較します。

1 回目に AA を比較して同じなので次の文字を比較します。

2 回目に BD を比較して B が小さいので、その順に並べ替えます。

それぞれの文字の大小は、上記の「文字列を並べ替えする」の順番どおりです。漢字については「CODE 関数」で取得できる漢字 → UNICODE 専用文字の順になります。それらの範囲内では「UNICODE 関数」の値の順番です。