Excel(エクセル)のSORTBY関数の使い方|複数列を基準に並べ替え
Excelで作業する上でデータの並べ替えは必須と言えます。SORTBY関数は複数の列を基準に指定してデータの順序を並べ替えできます。基本の並べ替えをするSORT関数の補完的な関数です。SORTBY関数の基本的な使い方から応用までを初心者向けに分かりやすく図解していきます。
使用関数:SORTBY
SORTBY(ソートバイ)関数とは?
SORTBY関数はセル範囲(及び配列)にあるデータを、指定した基準範囲と順序に従って並べ替えます。
SORTBY関数で作成した並べ替え後のリストを別シートで管理する場合も、元データに追加・削除があった時点ですばやく結果に反映されます。
SORTBY関数の引数と書式
「数式」→「関数ライブラリ」→「検索/行列」からSORTBYを選択します。
SORTBY関数の書式の構成はこうなります。
SORTBY関数が使えないExcelバージョンと代用
SORTBY関数はMicrosoft365(Office365)、及びExcel2021(永続版)以降で使用可能な関数です。Excel2019以前のバージョンでは使えませんのでご注意下さい。
SORTBY関数が使えないバージョンでは、フィルターの並べ替え機能やテーブル機能などで代用できます。
昇順・降順とは?並べ替えの基本の解説記事です。
並べ替え機能で複数条件を指定する方法の解説記事です。
SORTBY関数で複数の列を条件に並べ替える
簡単な例で複数列の条件を指定して並べ替え、SORTBY関数の引数の指定を一つずつ確認していきましょう。
以下の表で競技のタイムの速い順に並べ替えを行い、同タイムの場合は年齡が上の方を上位に並べ替えます。これはSORT関数にSORT関数をネストして実装することもできますが、SORTBYを使えば一つの数式で並べ替えることができます。
第一引数「配列」
並べ替えをするセル範囲、または配列を指定します。この例では表のデータ範囲をドラッグで指定します。
第二引数「基準配列1」
並べ替える基準範囲を指定します。この引数で指定した基準が優先順位のトップになります。
この例では「タイム」の数値を最優先の基準にして並べ替えたいので、データ範囲をドラッグで指定します。
第三引数「並べ替え順序1」
「基準配列1」の並べ替えの順序が昇順か降順かを指定します。省略した場合は「昇順」で並べ替えられます。
- 1を指定: 昇順で並べ替えます。
- -1を指定: 降順で並べ替えます。
この例ではタイムが速い方から順に並べ替えたいので、省略するか、または1と入力します。
「基準配列2」「並べ替え順序2」
優先順位第二位の基準範囲と昇順・降順の別を指定します。
- 基準配列2: この例では「年齡」のデータ範囲を指定します。
- 並べ替え順序2: 年齡が上の方から順に並べ替えたいので降順の「-1」を指定します。
SORTBY関数で「基準1:競技のタイムの速い順に並べ替える」「基準2:同タイムの場合は年齡が上の方を上位に並べる」を指定した構成です。
数式を確定させると、スピル機能で瞬時に並べ替えが完了します。
数式 =SORTBY(A2:C9,C2:C9,1,B2:B9,-1) 「SORTBY関数で競技のタイムの速い順に並べ替え、同タイムの場合は年齡が上の方を上位に並べる」
SORTBY関数をデータベースで使うならテーブル化が便利
膨大なデータ表でSORTBY関数を使うにはテーブルにしておくと便利です。「配列」や「基準配列」を指定するのもテーブル名や列見出しを入力するだけなので手間が省け、数式を見ただけでどういう構成になっているか判断しやすくなります。
前章で使った表をテーブルに変換して、「競技成績」というテーブル名を付けておきました。
テーブル名と列見出しをそのまま指定する構造化参照で組み立てた引数のダイアログです。
数式はこうなります。 =SORTBY(競技成績,競技成績[タイム(分)],1,競技成績[年齡],-1)
テーブルの設定や使い方の詳細は以下の記事で解説しています。
- SORTBYは一つの数式で複数列の条件を指定して並べ替えできる関数です
- SORTBY関数はMicrosoft365、及びExcel2021以外のバージョンでは使えません。標準装備された並べ替えとフィルター機能で代用します
- SORTBY関数で並べ替えした結果はスピル機能でまとめて表示されます
- SORTBY関数の引数「基準配列1」と「並べ替え順序1」がセットで並べ替えの最優先の条件になります
- 「基準配列2」と「並べ替え順序2」以降は番号順に優先順位が低くなります
- SORTBY関数をデータベースで使うなら、テーブルに変換して構造化参照で数式を組み立てると便利です