【Excel】SORTBY関数で元の表を変更せず複数条件で並べ替えする

以前、以下の記事でSORT関数の使い方について書きました。

SORT関数は1つの条件でソートする関数ですが、1つの条件でのソートだけでなく、複数の条件でソートしたいときがあります。そんな時にSORTBY関数を使用します。

構文と引数の説明

SORTBY関数は範囲または配列の内容を複数の条件で並べ替えます。

SORTBY(配列, 1つ目の並べ替えの基にする配列または範囲, [1つ目の並べ替え順序], [2つ目の並べ替えの基にする配列または範囲 , 2つ目の並べ替え順序],…)
※ []内の引数は任意の項目です。

引数必須説明
配列並べ替えの対象となる配列または範囲を指定します。空の場合、#VALUE!を返します。
1つ目の並べ替えの基にする配列または範囲並べ替えの基にする配列または範囲を指定します。ここで指定した列でソートされることになります。ここで指定した範囲のソートが最優先されます。
1つ目の並べ替え順序並べ替えの順序を示す数値を指定します。 以下に挙げた数値以外を指定するとVALUE!を返します。
昇順(既定):1
降順:-1
2つ目の並べ替えの基にする配列または範囲 並べ替えの基にする配列または範囲を指定します。ここで指定した列でソートされることになります。
2つ目の並べ替え順序 並べ替えの順序を示す数値を指定します。以下に挙げた数値以外を指定するとVALUE!を返します。
昇順(既定):1
降順:-1
「並べ替えの基にする配列または範囲」と「並べ替え順序」を対にして最大126個の条件を設定できます。

SORTBY関数は「並べ替えの基にする配列または範囲」と「並べ替え順序」は1つ目の条件が最も強く、その次に2つ目の条件・・・といった具合にソートされます。

「配列」および「並べ替えの基にする配列または範囲」は同じサイズである必要があります。つまりは選択した行数が同じということです。そうでないと#VALUE!が返ります。

使用例

以下のようなデータがあったとします。

上記の表を「地区」でソート(昇順)して、次に売り上げでソート(降順)でソートしたいと思います。

F2に以下の数式を入力します。以下の数式は$A$2:$D$8の範囲のデータを、A2:A8の範囲を昇順(1)でソートして、次にD2:D8の範囲を降順(-1)でソートすることを意味します。そうするとF2:I8のような結果を得ることができます。

=SORTBY($A$2:$D$8,A2:A8,1,D2:D8,-1)

ちなみに、以下で紹介したようにテーブル機能を使えば、元のデータのデータが増えたときにも自動で対応できます。

以上です。

コメント

タイトルとURLをコピーしました