いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)SORT関数の使い方

 Googleスプレッドシートでデータの並べ替えを関数で行うことができる、SORT関数の使い方についてです。

  • SORT関数を使うことで、データを指定したキーにより並べ替えた結果を得ることができます。

機能と構文

 SORT関数の機能は「指定した範囲のデータを、指定したキーを基準として並べ替える」というものです。基準となるキーは複数指定することができ、それぞれについて昇順(小さい順)とするか降順(大きい順)とするかを指定できます。
 構文は次のとおりです。

SORT(範囲, 並べ替えキー1, 昇順降順, [並べ替えるキー2, 昇順降順, …])

 基本的に引数の数は奇数となります。最初の引数で並べ替えるデータの範囲を指定し、第2引数で並べ替えのキーとする列を指定し、第3引数で昇順にするか降順にするかを指定します(TRUEを指定すると昇順、FALSEにすると降順)。第2位以下の並べ替えキーを指定する場合は同様に第4引数以降で指定します。
 並べ替えキーの指定にはセル範囲を直接指定することができ、また、インデックス(第1引数の範囲のうち最も左のものを1とする列番号)を用いることもできます。これらについては以下で両方の例を示します。
 なお、公式解説に沿って第3引数までを必須としていますが、実は第1引数以外は省略可能です。第1引数だけ指定した場合、昇順(小さい順)での並べ替えとなります。

基本的な使用例

 もっとも単純な並べ替えの例ですが、次の画像ではSORT関数で並べ替えの対象とするデータ範囲B3:D14だけを指定しています。
 このとき、データは昇順(小さい順)で並べ替えられます(左側の列が優先)。

 F3セル

=SORT(B3:D14)

 このように第1引数だけ指定することも可能です。具体的に並べ替えキーと昇順降順の指定をしておくに越したことはありませんが、参考まで。



 また、次の画像ではC列の値をキーとして指定し、昇順(TRUE)で並べ替えています。

 F3セル

=SORT(B3:D14,C3:C14,TRUE)

 ExcelのSORT関数が並べ替えキーをインデックス(数値)で指定する仕様のためGoogleスプレッドシートも同じと思いがちですが、このように範囲で指定することもできます。インデックス指定の方が式は短くなるものの、列の加除があったときにキーとなる列が変わってしまう点には留意が必要です。
 また、並べ替えキーとして指定した列に同じ値があり、その他の列について並べ替えの内容を指定していない場合、そこは初出順となります。ちょっとわかりにくいですがデータから確認してみてください。



 次の画像ではC列を第1キー(昇順)、D列を第2キー(降順)として並べ替えています。

 F3セル

=SORT(B3:D10,C3:C10,TRUE,D3:D10,FALSE)

 同様に第6引数以降を使って並べ替えキーの指定を増やしていくことができます。



 次の画像でも全く同じ並べ替えを行っていますが、ここでは並べ替えキーの指定にインデックス(列番号)を用いています。

 F3セル

=SORT(B3:D10,2,TRUE,3,FALSE)

 繰り返しになりますが、式は短くなるものの列の追加や削除があったときに並べ替えキーが変わってしまうのが注意点です。



 次の例はFILTER関数との複合例です。FILTER関数によりC列の値が7以上であるものを抽出し、さらにSORT関数でC列を第1キー(昇順)、D列を第2キー(降順)として並べ替えています。

 F3セル

=SORT(FILTER(B3:D10,C3:C10>=7),2,TRUE,3,FALSE)

 これまでの例では並べ替えキーの指定にセル範囲を使用することもインデックス(数値)を使用することもできました。
 しかしこの例の場合、SORT関数の並べ替えの対象は「FILTER(B3:D10,C3:C10>=7)」という式の結果なので、並べ替えキーとしてセル範囲を用いようとしてもうまく表現できません。よって並べ替えキーはインデックスで指定するのが適当です。ここが注意点です。
 また、関数を入れ替えて「=FILTER(SORT(B3:D10,2,TRUE,3,FALSE),C3:C10>=7)」としてしまうと誤った結果を出力してしまいます。ソートした結果をソート前のデータに基づいてフィルタしてしまうためですが、こうした失敗例と原因については次の記事で紹介しています。

www.officeisyours.com

応用例

 非常に多用される関数ですのでキリがありませんが、例として次のようなものもあります。参考まで。

www.officeisyours.com