【Excel】フィルター機能を使わずに並べ替えする(SORT関数)

excel Excel

フィルターを使わずに表に対して並べ替えしてみました。

Excelのフィルター機能を利用すると元の表自体を並べ替えることになるので、元の表には手を加えずにSORT関数を利用して並べ替えしてみました。

しかし使ってみた結果、元の表をシートごとコピーしてフィルター機能を利用したほうが使い勝手がいいと感じたので、機械的な処理で並べ替えを実施したいときに利用する関数かと思いました。

広告

やりたいこと

以下のように、元の表はそのままの状態で、表をコピーし、ある列に対して昇順/降順で並べ替えます。

元の表はそのままの状態で、表のとある列に対して昇順/降順で並べ替えをする

フィルターを使わずに並べ替えする

SORT関数を利用してフィルター機能を利用せず、元の表もそのままの状態にしたまま並べ替えをすることができます。

# セル「D2」に入力した式
=SORT(A2:B8,2,-1,FALSE)

数式を入力する箇所は1か所のみでOKで、選択した範囲分の値は自動的に表示されます。

SORT関数の引数

引数は以下の通りでつあります。

SORT関数の引数

第1引数:範囲の選択

並べ替えをしたい範囲や列を指定します。
どの列を並べ替えの対象にするのかは2つ目の引数で定義します。

第2引数:どの列/行を並べ替えるのかを指定

第1引数で選択した範囲の一番左の列、もしくは一番上の行を1として入力します。
上記では選択した範囲の2列目を並べ替えしたかったので 2 を入力しています。

第3引数:昇順か、降順かを指定

1が昇順、-1が降順です

第4引数:行で並べ替えるのか列で並べ替えるのかを指定(省略時は「行」)

TRUE/FALSEで指定します。
省略するとFALSEとなり、行で並べ替えることになります。
エクセルでは行で並べ替えることが多いので、基本的には省略でよいかと思います。

注意点:SORT関数が利用したい範囲に値が入っているとエラーとなる

SORT関数が利用したい範囲に値が入っているとエラーとなります。

SORT関数が利用したい範囲に値が入っているとエラーとなる

このように「#スピル!」と記載されてエラーとなります。

スピルとは英語で零れる/零すという意味で、1つのセルに対して入力した値が他のセルにも影響を与えることを表現しているイメージかと思います。

[参考] 元の値を変更すると関数を利用している値も変わる

これも当たり前と言えば当たり前ですが、元の表の数字を変更するとSORT関数を利用して並べ替えをしている範囲にも影響がでます。

以下のように 287 を 2870 に変更してみると、即座に一番上に 2870 が来ます。

元の表の数字を変更するとSORT関数で表示している範囲も変わる

このときセル「D2」の数式は変わっていません。

タイトルとURLをコピーしました