SORT(ソート)関数とSORTBY(ソートバイ)関数を使用すると、表内のキーを基準に別表に並べ替えた結果を表示できます。
データが変更される度に並べ替えの操作をしなくても常に並べ替えられた状態になります。
UNIQUE(ユニーク)関数やFILTER(フィルター)関数と組み合わせて並べ替えることもできます。
SORT関数とSORTBY関数は、Microsoft 365のExcelとExcel2021で使用できます。
目次
SORT関数を使用して指定した列を基準に並べ替え
以下のような表があります。
この表をSORT関数を使用して並べ替えます。クラスの昇順に並べ替えたいと思います。
まず、セル[A2]からセル[E2]の項目名コピーして、セル[G2]へ貼り付けしておきます。
セル[G3]をアクティブにします。
数式バーに[=so]まで入力すると、以下のように関数の候補が表示されます。
[SORT]が選択されていることを確認して、キーボードから[Tab]キーを押すか、ダブルクリックします。
すると、数式バーには、[=SORT(]までが入力されます。
この時にキーボードから[Ctrl]+[A]、または[Shift]+[F3]を押すと、SORTの[関数の引数]ダイアログボックスが表示されます。
SORT関数は、範囲または配列を並べ替えます。
[配列]の[ダイアログボックス拡大/縮小]ボタンをクリックして、セル[A3]からセル[E12]までをドラッグして指定します。
[並べ替えインデックス]には、[クラス]の列は範囲内で左から2番目なので[2]と入力します。
ボックス内にカーソルがある時に、その引数の説明が表示されます。分からなくなったら、ここを参照してください。
[並べ替え順序]と[並べ替え基準]は省略可能なので、空白のまま[OK]ボタンをクリックします。
クラスの昇順に並び替えられた表が作成されます。
SORT関数はスピル対応の関数なので、先頭の1つのセルへ入力するだけでOKです。
=SORT(A3:E12,2)
参考数式を編集する場合は、必ず数式を設定したセルで行います。数式バーに薄く表示されているのは、スピルのゴーストです。ゴーストのセルでは、数式を編集したり削除はできません。
SORT関数の構文
[配列]には、抽出したいデータ範囲を指定します。この時、表の項目名は含みません。
[並べ替えインデックス]には、並べ替えの基準となる列が表の左側から何番目になるかを指定します。省略すると、配列の1番目が指定されます。
[並べ替え順序]には、昇順か降順を指定します。昇順の場合は[1]、降順の場合は[-1]を指定します。既定は昇順[1]で省略できます。
[並べ替え基準]には、行を並べ替える場合は[FALSE]、列を並べ替える場合は[TRUE]を指定します。既定は[FALSE]で省略できます。
参考Microsoftの記事をリンクしておきます。
SORT 関数 - Microsoft サポート(Microsoft)
文字列は文字コード順の並べ替え
[氏名 ]の列を[並び替えインデックス]に指定して並べ替えてみます。
セル[G3]の数式で[並べ替えインデックス]を[3]に変更します。
=SORT(A3:E12,3)
ふりがな順にはなりません。SORT関数では、日本語は、文字コード順になります。
[ふりがな]の列を[並べ替えインデックス]に指定すると、ふりがな順になります。
SORT関数を使用してふりがなの順に並べ替えたい場合は、ふりがなの列を作成します。
参考Excelでは、PHONETIC(フォネティック)関数を使って、ふりがなを表示することができます。
-
ふりがなが表示されない・別のセルに表示したい(PHONETIC関数とマクロ)
Excelには、ふりがなを表示できる便利な機能があります。 そして、PHONETIC(フォネティック)関数を使って、ふりがなを別のセルに表示 ...
[データ]タブの並べ替えコマンド
[データ]タブの[昇順]ボタンを使用すると、ふりがな順に並びます。
以下は、C列の[氏名]の列を昇順にしています。
[データ]タブの並べ替えコマンドは、既定で[ふりがなを使用する]がオンになっているため、ふりがな順に並びます。
ただし、[氏名]の列にふりがな情報がある場合です。
[並べ替えオプション]ダイアログボックスで[ふりがなを使わない]を使用すると、[文字コード順](SORT関数での並び)になります。
参考[並べ替え]ダイアログボックスの使い方については、以下の記事で解説しています。
-
[並べ替え]の[レベルの追加]で複数の基準でデータを並べ替え
Excelのデータでセルに塗りつぶしを設定して色分けした表を作成している場合、セルの塗りつぶしの色で並べ替えることができます。 [並べ替え] ...
-
セルの色で並べ替え(条件を追加して複数キーによる並べ替えもできる)
Excel2007からセルの塗りつぶしの色で並べ替えや絞り込みができるようになりました。 ここでは、Excel2010でセルの塗りつぶしの色 ...
SORTBY関数を使用して基準の列を複数指定して並べ替え
SORTBY関数を使用すると、並べ替えの基準を複数指定できます。
例えば、クラスの昇順で年齢の降順に並べ替えたいとします。
セル[G3]をアクティブにして、数式バーに[=so]と入力すると、入力候補に[SORTBY]が表示されますので選択して[Tab]キーを押すか、ダブルクリックします。
数式バーに[=SORTBY(]まで入力された時に、キーボードから[Ctrl]+[A]、または[Shift]+[F3]を押すとSORTBYの[関数の引数]ダイアログボックスが表示されます。
SORTBY関数は、範囲または配列を対応する範囲または配列の値に基づいて並べ替えます。
[配列]の[ダイアログボックス拡大/縮小]ボタンをクリックして、セル[A3]からセル[E12]までをドラッグして指定します。
[基準配列1]の数式ボックスにカーソルを置くと、[並べ替え順序1]が表示されます。
[基準配列1]には、[クラス]列の範囲、セル[B3]からセル[B12]を指定します。数値では指定できません。
[並べ替え順序1]には[1]と入力します。[1]が既定なので省略しても構いません。
[基準配列2]には、[年齢]列の範囲、セル[E3]からセル[E12]を指定します。
[並べ替え順序2]には[-1]と入力します。
[OK]ボタンをクリックします。
セル[G3]の数式は、以下のようになります。先頭のセルに入力するだけでスピルされます。
=SORTBY(A3:E12,B3:B12,1,E3:E12,-1)
SORTBY関数の構文
[配列]には、抽出したいデータ範囲を指定します。この時、表の項目名は含みません。
[基準配列]には、並べ替えの基準となるセル範囲や配列を指定します。
[並べ替え順序]には、昇順か降順を指定します。昇順の場合は[1]、降順の場合は[-1]を指定します。既定は昇順[1]で省略できます。
SORTBY関数も日本語の並べ替えは、文字コード順になります。
SORTBY 関数 - Microsoft サポート(Microsoft)
参考1つの列を並べ替えたい場合は、SORT関数が便利です。複数の列を基準にする場合は、SORTBY関数のほうが便利です。
もし、SORT関数のみで複数列を並べ替えたい場合は、以下のような数式になります。優先順位が高いほうを外側にします。
=SORT(SORT(A3:E12,5,-1),2)
見出しの並び順に列を並べ替える
列を並べ替えたい順に列見出しとなる項目名を入力しておいて、その並びを基準に並べ替えることもできます。
セル[G3]に以下の数式を入力します。
=SORTBY(A3:E12,MATCH(A2:E2,G2:K2,0))
MATCH関数の[検査値]にセル[A2]からセル[E2]を指定して、[検索範囲]にセル[G2]からセル[K2]を指定します。
[照合の種類]は、完全一致の[0]を指定します。
MATCH 関数 - Microsoft サポート(Microsoft)
SORTBY関数をネストにして行と列を並べ替える
SORTBY関数をネストにして、行と列の両方を並べ替えることもできます。
以下は、クラスの昇順で行を並べ替え、列は見出し順に並べ替えています。
=SORTBY(SORTBY(A3:E12,B3:B12,1),MATCH(A2:E2,G2:K2,0))
UNIQUE関数やFILTER関数と組み合わせて使用する
SORT関数は、単独で使用する機会は少ないかもしれませんが、UNIQUE関数やFILTER関数と一緒に使用すると便利です。
[UNIQUE関数]も[FILTER関数]もMicrosoft 365のExcelとExcel2021でしか使用できませんが、使用できる環境の場合は積極的に使ってみてください。
UNIQUE関数
重複のないリストを抽出して、昇順に並べ替えています。
=SORT(UNIQUE(A2:A14))
参考UNIQUE関数は、以下の記事で解説しています。
-
UNIQUE関数で重複しない値をリスト化して表内の該当セルを塗りつぶす
Excel2021とMicrosoft 365のExcelでは、UNIQUE(ユニーク)関数を使用することができます。 UNIQUE関数を使 ...
FILTER関数
以下は、クラスAのデータを抽出して、年齢の降順に並べ替えています。
=SORT(FILTER(A3:D12,B3:B12=F3),4,-1)
参考FILTER関数は、以下の記事で解説しています。
-
条件に一致するデータを抽出できるFILTER(フィルター)関数
FILTER関数を使用して条件に合うデータを抽出することができます。 数式は先頭のセルに入力すると、スピル機能によって自動で数式が入力されま ...