SORTBY関数 ● データを指定した順序で並べ替える

[Excel 2021以降]

Excelの SORTBY(ソート・バイ)関数の使い方を紹介します。

SORTBY関数はExcel 2021の新関数です。この関数を使うと、並べ替えの基準となる配列を指定して表の並べ替えを行えます。[データ]タブにある並べ替えの機能とは異なり、元の表はそのまま、別のセル(SORTBY関数を入力したセル)に並べ替えた結果が表示されます。ここでは、SORTBY関数による基本的な表の並べ替えを紹介します。

スポンサーリンク

書式

データを指定した順序で並べ替える
=SORTBY(配列, 基準配列1, [順序1], [基準配列2, 順序2]…)

指定した[基準配列]、[順序]をもとに[配列]を並べ替えます。[基準配列]と[順序]はペアで指定します。[基準配列]と[順序]を複数組指定する場合は、優先順位の高い順に指定します。[順序1]を省略した場合、昇順の並べ替えが行われます。関数式は、動的配列数式として入力されます。

引数

引数 説明
配列 並べ替えの対象となる配列やセル範囲を指定する。
基準配列 並べ替えの基準となる配列やセル範囲を指定する。
行単位で並べ替える場合は「[配列]の行数×1列」の配列を指定する。
列単位で並べ替える場合は「1行×[配列]の列数」の配列を指定する。
順序 昇順(小さい順)で並べ替える場合は「1」を指定する(既定値)。
降順(大きい順)で並べ替える場合は「-1」を指定する。

SORTBY関数による並べ替えの注意事項

  • 大文字と小文字は区別されません。
  • 漢字はふりがな順ではなく文字コード順に並べ替えられます。
  • 日付や時刻はシリアル値で表示されるので、適宜表示形式を設定する必要があります。

使用例1…年齢の小さい順に行単位の並べ替えを行う

図1の名簿を年齢の小さい順に並べ替えます。SORTBY関数の引数[配列]に並べ替える範囲のセルA3~D9を指定します。[基準配列1]に並べ替えの基準となる年齢のセルD3~D9を指定します。小さい順に並べ替えるので、[順序1]は省略できます。

=SORTBY(配列, 基準配列1, [順序1], [基準配列2, 順序2]…)

セルF3 | =SORTBY(A3:D9,D3:D9)

セルF3に数式を入力して[Enter]キーを押すと、セルF3~I9の範囲に数式がスピル(隣接するセルに数式が自動拡張すること)し、結果が表示されます。

図1 セルF3にSORTBY関数を入力して[Enter]キーを押す。

図2 数式がセルI9までスピルして、年齢の低い順に並べ替えられたデータが表示される。

ちなみに[順序1]に「-1」を指定すれば、年齢の大きい順の並べ替えを行えます。

=SORTBY(配列, 基準配列1, [順序1], [基準配列2, 順序2]…)

セルF3 | =SORTBY(A3:D9,D3:D9,-1)

図3 第3引数[順序]に「-1」を指定すると降順の並べ替えになる。

メモ

動的配列数式の編集と削除
SORTBY関数の戻り値は、数式を入力したセルに隣接する複数のセルに表示されます。このような数式を「動的配列数式」と呼びます。動的配列数式の編集や削除は、数式を入力したセルで行います。例えば図3の数式を修正する場合、セルF3を選択して修正します。[Enter]キーで確定すると、隣接するセルの数式も変わります。また、セルF3を選択して[Delete]キーを押すと動的配列数式が削除され、隣接するセルも含めてすべての戻り値が消去されます。

使用例2…氏名のふりがな順に並べ替える

[データ]タブの[昇順]ボタンや[降順]ボタンによる漢字データの並べ替えでは、セルの内部に保存されているふりがなが使用されます。一方、SORTBY関数ではふりがなが使用されません。ふりがな順に並べ替えるには表にふりがなの列を設け、PHONETIC関数を使用して漢字のセルからふりがなを取り出します。

=PHONETIC(参照)

セルE3 | =PHONETIC(B3)

図4 セルE3にPHONETIC関数を入力して、セルE9までコピーすると、氏名のふりがなが表示される。

ふりがなを取り出せたら、あとはSORTBY関数を使用して、ふりがなのセルE3~E9を基準に並べ替えを行います。

=SORTBY(配列, 基準配列1, [順序1], [基準配列2, 順序2]…)

セルG3 | =SORTBY(A3:E9,E3:E9)

図5 セルG3にSORTBY関数を入力して[Enter]キーを押すと、数式がセルK9までスピルして、氏名のふりがな順に並べ替えられたデータが表示される。

メモ

漢字変換前の読みが取り出される
セルに漢字データを入力すると、漢字変換前の読みがふりがなとしてセルの内部に記憶されます。PHONETIC関数を使用すると、内部に記憶されているふりがなが取り出されます。なお、ほかのアプリからコピー/貼り付けしたセルの場合、セルにふりがなが記憶されていないので、PHONETIC関数を使用してもふりがなを取り出せません。

メモ

ふりがな列を含めずに並べ替えることも可能
SORTBY関数では、[配列]の外にあるセル範囲を[基準配列]に指定することが可能です。下図では、「シメイ」を基準に「No」「氏名」「コース」「年齢」だけを並べ替えています。
=SORTBY(A3:D9,E3:E9)

使用例3…複数の列を基準に並べ替える

SORTBY関数で[基準配列]と[順序]のペアを複数組指定すると、複数の列を基準とした並べ替えを行えます。その際、優先順位の高い順に[基準配列]と[順序]のペアを指定してください。
図6では、コース(セルC3~C9)の昇順、年齢(セルD3~D9)の降順で並べ替えを行います。

=SORTBY(配列, 基準配列1, [順序1], [基準配列2, 順序2]…)

セルF3 | =SORTBY(A3:D9,C3:C9,1,D3:D9,-1)

図6 セルF3にSORTBY関数を入力する。[Enter]キーを押すと、数式がセルI9までスピルして、データが「コース」の昇順で並べ替えられる。同じ「コース」の中では、「年齢」の降順に並べ替えられる。

使用例4…最下行の「合計」を基準に列単位で並べ替える

SORTBY関数では、並べ替えの方向は[基準配列]の方向によって決まります。

  • 行単位の並べ替え : 縦一列の配列を指定
  • 列単位の並べ替え : 横一行の配列を指定

図7では、各店舗のデータ(セルB2~D7)を「合計」のセルB7~D7の降順で並べ替えます。セルB7~D7は横一行の配列なので、列単位の並べ替えが行われます。

=SORTBY(配列, 基準配列1, [順序1], [基準配列2, 順序2]…)

セルG2 | =SORTBY(B2:D7,B7:D7,-1)

図7 セルG2にSORTBY関数を入力して[Enter]キーを押す。

図8 数式がセルI7までスピルして、合計の大きい店舗順に並べ替えられたデータが表示される。

SORT関数との使い分け

Excelには並べ替え用の関数としてSORT関数とSORTBY関数が用意されています。それぞれのメリットを理解して使い分けましょう。

SORT関数

  • 並べ替えの基準の行や列を番号で指定できるので、単純な並べ替えをするときに簡単な指定で済む。

SORTBY関数

  • 1つの関数で複数の基準を指定して並べ替えを行える。
  • 表外のデータを基準に並べ替えを行える。
スポンサーリンク

関連記事