2023年6月20日【ID:0】
【Excel】SORT(BY)関数で複数列を基準にして並べ替える
スピルを活用した関数の中にSORT関数とSORTBY関数というものがあります。
この2つの関数は、ともに、指定した表に対し、指定した項目を昇順もしくは降順にして並べ替えた表を返すものになります。
まず、SORT関数の使い方は以下のようになります。
=SORT(配列, [並べ替えインデックス], [並べ替え順序], [並べ替え基準])
// 配列:対象の表
// 対象の表の中の、対象の列(行)の、表の先頭からの列(行)番号 ※省略時は先頭列(行)
// [並べ替え順序]:1→昇順、-1→降順 ※省略時は昇順
// [並べ替え基準]:TRUE→列で並べ替え、FALSE→行で並べ替え ※省略時は行で並べ替え
・活用例
=SORT(B3:E12,3,1,FALSE)
※日付(K列)の項目が表示形式を設定していないため、シリアル値が表示されています。
次に、SORTBY関数の使い方です。
=SORTBY(配列, 基準配列1, [並べ替え順序1], [基準配列2, 並べ替え順序2], [基準配列3, 並べ替え順序3], …)
// 配列:対象の表
// 基準配列1:並べ替えたい列(行)全体の範囲
// [並べ替え順序1]:基準配列1に対して昇順もしくは降順を指定する 1→昇順、-1→降順 ※省略時は昇順
// 基準配列2以降は必要であれば設定する
・活用例
=SORTBY(B3:E12,D3:D12,1)
列指定を行指定にすることで横方向に並べ替えることもできます。
=SORTBY(C2:L5,C4:L4,1)
では、それぞれの関数での複数項目での並べ替えの方法について解説していきます。
基本はSORTBY関数を活用するのが簡単になります。
SORTBY関数の場合は、以下のように複数列を指定することで簡単に並べ替えれます。
=SORTBY(B3:E12,D3:D12,1,E3:E12,1)
続いてSORT関数でも表現していきます。
SORT関数を活用した複数列指定での並べ替え方法を2つ紹介します。
1つ目は、SORT関数の中にSORT関数を使用するという方法です。
SORT関数で、1つ目の項目を基準に並べ替えた後に、その並べ替えた表を基準に2つ目の項目を基準に並べ替えます。
=SORT(SORT(B3:E12,4,1,FALSE),3,1,FALSE)
2つ目の方法は配列を活用します。
引数の [並べ替えインデックス]と [並べ替え順序]に関して、配列で複数指定することができます。
=SORT(B3:E12,{3,4},{1,1},FALSE)
SORT関数では、対象の列(行)全体を選択せずに番号のみを指定するだけで並べ替えできます。
SORT関数とSORTBY関数、どちらに関しても、この理屈で2つ以上の複数列を基準に並べ替えることができるので、使いやすいと感じた方を活用すると良いです。