【Excel】SORTBY関数とXMATCH関数を組み合わせて独自の順番で並べ替える方法

SORTBY関数は、元のデータを保持したまま並び替えができる便利な関数ですが、標準では降順または昇順の並び替えしかできません。しかし、XMATCH関数と組み合わせることで独自の順番で並べ替えることができます。

SORTBY関数はExcel 2019以降またはMicrosoft 365、XMATCH関数はExcel 2021以降またはMicrosoft 365でのみ使用できます。

目次

SORTBY関数とXMATCH関数を組み合わせて独自の順番で並べ替える方法

たとえば、以下のような名簿を役職の高い順「部長」→「課長」→「係長」→「一般社員」の順に並び替えたいと思います。

SORTBY関数を使って並べ替えた結果を表示させる表を作成します。

どこでも構わないので、並び替えたい順序で記載した役職のリストを用意します(別のシートでも大丈夫です)。

元の表を保持したまま並べ替えを行うため、SORTBY関数を使用します。

SORTBY(配列, 基準配列1, 並べ替え順序1, 基準配列2, 並べ替え順序2…)
指定した配列を基準配列のデータに基づき並び替えを行う。並び替え順序には昇順「1」または降順「-1」を指定できる。

「部長」「課長」「係長」「一般社員」というデータだけでは、並び替えはできないので、XMATCH関数を使ってこの順序を数値化します。「部長=1」「課長=2」「係長=3」「一般社員=4」というようにそれぞれの役職にナンバリングします。

XMATCH(検索値, 検索範囲, [一致モード], [検索モード])
検索値が検索範囲の何番目の位置にあるかを検索する。

並べ替え結果を表示させたいセルに以下のように数式を入力します。

=SORTBY(A2:B32,XMATCH(A2:A32,G2:G5))

このように入力することで、A列の役職には以下のようにナンバリングされ、これを昇順に並び替えれば役職順になります。

これで元のデータを役職順に並び替えることができました。

並び替え順序を降順「-1」にすれば、役職の低い順に並び替えることもできます。

=SORTBY(A2:B32,XMATCH(A2:A32,G2:G5),-1)

SORTBY関数を使うことで、役職順の次に優先したい並び替えの順序を指定することもできます。たとえば、「役職の高い順」⇒「社歴の長い順」という優先順位で並び替えたい場合、基準配列2に社歴の列を選択します。並び替え順序には降順「-1」を指定します。

=SORTBY(A2:C32,XMATCH(A2:A32,I2:I5),1,B2:B32,-1)

これで「役職の高い順」⇒「社歴の長い順」という優先順位で並び替えることができます。

このようにSORTBY関数とXMATCH関数を組み合わせることで柔軟な並び替えを行うことができます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Junyaと申します。本ブログではExcelなどビジネススキルを発信しています。
Youtubeで動画投稿もしていますので、是非フォローお願いします。

コメント

コメントする

目次