[Excel 2021以降]
Excelの SORT(ソート)関数の使い方を紹介します。
SORT関数はExcel 2021の新関数です。この関数を使うと、表の○列目や○行目のデータを基準に並べ替えを行えます。[データ]タブにある並べ替えの機能とは異なり、元の表はそのまま、別のセル(SORT関数を入力したセル)に並べ替えた結果が表示されます。
目次
書式
データを指定した順序で並べ替える
=SORT(配列, [基準], [順序], [方向])
指定した[基準]、[順序]、[方向]をもとに[配列]を並べ替えます。指定が必須な引数は[配列]だけで、この引数のみを指定した場合、[配列]の1列目を基準に昇順、行単位の並べ替えが行われます。関数式は、動的配列数式として入力されます。
■引数
引数 | 説明 |
---|---|
配列 | 並べ替えの対象となる配列やセル範囲を指定する。 |
基準 | 並べ替えの基準を指定する。行単位で並べ替える場合は列番号を、列単位で並べ替える場合は行番号を指定する。既定値は「1」。 |
順序 | 昇順(小さい順)で並べ替える場合は「1」を指定する(既定値)。 降順(大きい順)で並べ替える場合は「-1」を指定する。 |
方向 | 行単位で並べ替える(行を並べ替える)場合は「FALSE」を指定する(既定値)。 列単位で並べ替える(列を並べ替える)場合は「TRUE」を指定する。 |
■SORT関数による並べ替えの注意事項
- 大文字と小文字は区別されません。
- 漢字はふりがな順ではなく文字コード順に並べ替えられます。
- 日付や時刻はシリアル値で表示されるので、適宜表示形式を設定する必要があります。
使用例1…年齢の小さい順に行単位の並べ替えを行う
図1の名簿を年齢の小さい順に並べ替えます。SORT関数の引数[配列]に並べ替える範囲のセルA3~D9を指定します。年齢は表の4列目にあるので、[基準]に「4」と指定します。小さい順に並べ替えるので、[順序]は省略できます。また、行単位で並べ替えるので、[方向]も省略できます。
=SORT(配列, [基準], [順序], [方向])
セルF3 | =SORT(A3:D9,4)
セルF3に数式を入力して[Enter]キーを押すと、セルF3~I9の範囲に数式がスピル(隣接するセルに数式が自動拡張すること)し、結果が表示されます。
ちなみに[順序]に「-1」を指定すれば、年齢の大きい順の並べ替えを行えます。
=SORT(配列, [基準], [順序], [方向])
セルF3 | =SORT(A3:D9,4,-1)
メモ
使用例2…氏名のふりがな順に並べ替える
[データ]タブの[昇順]ボタンや[降順]ボタンによる漢字データの並べ替えでは、セルの内部に保存されているふりがなが使用されます。一方、SORT関数ではふりがなが使用されません。ふりがな順に並べ替えるには表にふりがなの列を設け、PHONETIC関数を使用して漢字のセルからふりがなを取り出します。
=PHONETIC(参照)
セルE3 | =PHONETIC(B3)
ふりがなを取り出せたら、あとはSORT関数を使用して、5列目のふりがなを基準に並べ替えを行います。
=SORT(配列, [基準], [順序], [方向])
セルG3 | =SORT(A3:E9,5)
メモ
メモ
使用例3…複数の列を基準に並べ替える
SORT関数では、並べ替えの基準を1つしか指定できません。複数の列を基準に並べ替えるには、SORT関数を入れ子にします。優先順位の低い並べ替えを内側、高い並べ替えを外側のSORT関数で指定します。
図6では、コース(3列目)の昇順、年齢(4列目)の降順で並べ替えを行います。内側のSORT関数の引数[基準]に「4」、外側のSORT関数の引数[基準]に「3」を指定します。
=SORT(配列, [基準], [順序], [方向])
セルF3 | =SORT(SORT(A3:D9,4,-1),3,1)
使用例4…最下行の「合計」を基準に列単位で並べ替える
SORT関数で列単位の並べ替えを行うには、第4引数の[方向]に「TRUE」を指定します。図7では、各店舗のデータ(セルB2~D7)を6行目の「合計」の降順で並べ替えます。
=SORT(配列, [基準], [順序], [方向])
セルG2 | =SORT(B2:D7,6,-1,TRUE)
SORTBY関数との使い分け
Excelには並べ替え用の関数としてSORT関数とSORTBY関数が用意されています。それぞれのメリットを理解して使い分けましょう。
■SORT関数
- 並べ替えの基準の行や列を番号で指定できるので、単純な並べ替えをするときに簡単な指定で済む。
■SORTBY関数
- 1つの関数で複数の基準を指定して並べ替えを行える。
- 表外のデータを基準に並べ替えを行える。