いきなり答える備忘録

G Suite・Microsoft 365・LibreOfficeなどに関するメモと日々の実験

(EXCEL)SORT関数で複数の並べ替えキーを指定する

 ExcelのSORT関数で並べ替えのキーとなる列を2つ以上指定する方法についてです。単純にSORT関数をネストする方法もありますが、別の方法で複数のキーを設定し、昇順降順も独立して設定することができます。

  • SORT関数の第2引数(並べ替えキー)と第3引数(昇順降順)にそれぞれ配列を与えることで、複数のキーによる並べ替えができます。

手順

f:id:accs2014:20200626232252p:plain:right:w450

 画像のような名簿があります。
 このデータを、SORT関数を使って次の基準で並べ替えるものとします。

  • 第1キー……クラスの降順
  • 第2キー……学年の昇順

 SORTBY関数の場合は並べ替えインデックス(キーとなる列)と並べ替え順序(昇順/降順)を繰り返し指定することができますが、SORT関数の場合はそれぞれ1つずつしか指定できないため、複数の並べ替えキーによる並べ替えは不可能のように思われます。
 しかし、引数の記入の方法によって複数の並べ替えキーを設定することができます。

 

f:id:accs2014:20200626235108p:plain:right:w600

 その方法は「各引数を『{ }で囲んだ配列』にすること」です。

 実際にF3セルに次のように入力します。

 F3セル

=SORT(B3:D11,{3,2},{-1,1})

 SORT関数の第2引数(並べ替えキーとなる列番号。指定範囲のうち左から順に1,2,3…)と第3引数(1…昇順,-1…降順)として{ }で囲んだ配列を与えています。引数としては1つずつしか指定できないのですが、それぞれに配列を指定することで複数の並べ替えキーを設定することができます。
 

f:id:accs2014:20200626234544p:plain:right:w600

 確定すると結果はこうなります。
 意図したとおり、クラスについてはC→B→Aと降順になり、同じクラスについては1→2→3と昇順になっていることが分かります。

 なお、SORTBY関数を用いた次の式により、上記の結果と全く同じ結果を得ることができます。
 どちらを用いるかは好み次第ですが、並べ替えキーを列番号(1,2,3…)だけで済ませられる点はSORT関数の特徴といえます。

=SORTBY(B3:D11,D3:D11,-1,C3:C11,1)