【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をコピーしました