エクセル SORT 関数:セルの範囲を並べ替えする

はじめに

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

SORT 関数は指定したセルの範囲や配列を行や列で並べ替えした配列を取得します。

昇順や降順に並び替えしたいときに使用します。

この関数は 365 で使用できます。2019 以前のバージョンでは使用できません。
  • 目次
    • 構文
    • 使用例
    • 解説

構文

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

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

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

使用例

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

1 列目を行単位で並べ替えする。

=SORT(B3:C6)
1

2 列目を行単位で並べ替えする。

=SORT(B3:C6,2)
2

2 列目を行単位で降順に並べ替えする。

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

1 行目を列単位で並べ替えする。

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

文字列

文字列で並べ替えする。

=SORT(B3:C6)
5

日付

日付で並べ替えする。

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

=SORT(B3:C6)
6

解説

「SORT 関数」は「RANDARRAY 関数」などのように、配列を結果として返すものに対して並べ替えたいときに使用します。セルの範囲を並べ替えるには、より詳細に指定できる「SORTBY 関数」を使用します。

引数「範囲」の全体を引数「方向」で指定した行単位または列単位に並べ替えます。

引数「インデックス」に引数「範囲」外の行や列を指定したときはエラー#VALUE!になります。

文字列の順番

文字の UNICODE の値の順になります。「UNICODE 関数」を使用して、その文字の値を取得できます。

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

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

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

何も入力していないのが一番小さな値です。

同じ値のとき

引数「インデックス」に指定した行や列に同じ値があるときは、必ず出現した順になります。次の B と C が同じ個数なので、昇順でも降順でも必ずB, Cの順に並べ替えられます。

=SORT(B3:C6,2)
7

範囲外のキーや複数のキーを指定

引数「範囲」外の値で並べ替えしたり、複数の行や列を指定して並べ替えをするには「SORTBY 関数」を使用します。

  • 目次
    • 構文
    • 使用例
    • 解説