SORTBY関数で複数キーを並べ替える|ランク順→年齢順の書き方

SORTBY関数で複数キーを並べ替える|ランク順→年齢順の書き方

SORTBY関数が、特定の列を基準に柔軟な並べ替えを行えることは既にご紹介しました。しかし、この関数の真の力は、複数の条件(キー)を組み合わせて、より複雑な並べ替えを実現できる点にあります。

「まず役職順に並べ替え、同じ役職の中では年齢順に並べ替えたい」といった、実務で頻繁に遭遇するニーズに、SORTBYは完璧に応えてくれます。今回は、会員名簿を例に、この複数キーによる並べ替えテクニックをマスターしましょう。

目次

今回のゴール:ランク順、さらにランクが同じ場合は年齢順で名簿を並べ替える

以下の会員名簿があります。この名簿を、まずC列の「ランク」が昇順(A→B→C)になるように並べ替えます。さらに、ランクが同じ会員同士は、D列の「年齢」が高い順(降順)になるように並べ替えることが目標です。

解決策:SORTBY関数で複数の基準を指定する

手順:F2 に SORTBY の式を入れて Enter

会員名簿(A2:D8)を、ランク順に並べ、同じランクの中は年齢の高い順にします。 F2 に次の式を入力して、Enter キーを押します❶。

F2 に入れる式
=SORTBY(A2:D8,C2:C8,1,D2:D8,-1)
A2:D8 配列C2:C8 基準配列1(ランク)1 並べ替え順序1(昇順)D2:D8 基準配列2(年齢)-1 並べ替え順序2(降順)
ひとことでランクの小さい順(A→C)に並べ、同じランクの中は年齢の大きい順に並べ替える
式を分けて読むと(色は画像の枠と同じ)
配列A2:D8
どの表を並べ替える?
→ 名簿の全列
基準配列1C2:C8
最初の基準は?
→ ランクの列
並べ替え順序11
どちらの順?
→ 1=小さい順(A→B→C)
基準配列2D2:D8
次の基準は?
→ 年齢の列
並べ替え順序2-1
どちらの順?
→ -1=大きい順(年上が先)
自分の表で使うときは
基準は「基準の列」と「順序」のペアで、優先する順に並べます。ペアを足せば 3 つ目の基準も使えます。例:部署の順、同じ部署は売上の高い順=SORTBY(A2:D50,B2:B50,1,D2:D50,-1)
  • Microsoft 365・Excel 2021 以降で使えます。結果が広がる先のセルに何か入っていると #SPILL! になります。
エクセルのSORTBY関数でランク順・年齢順の2つの基準で名簿を並べ替える式と、基準配列・並べ替え順序を色分けした画面
エクセルのSORTBY関数でランク順・年齢順の2つの基準で名簿を並べ替える式と、基準配列・並べ替え順序を色分けした画面

確認:ランク A→B→C、同じランクは年齢の高い順になった

エクセルのSORTBY関数で、ランクA・B・Cのまとまりごとに年齢の高い順へ並んだことを色で示した画面
エクセルのSORTBY関数で、ランクA・B・Cのまとまりごとに年齢の高い順へ並んだことを色で示した画面

答えは ランク順・年齢の高い順の名簿 になりました❷。式は、次の順に計算しています。

  1. ランクを小さい順に並べる
    ⇒ A(2 人)→ B(3 人)→ C(2 人)
  2. 同じランクの中を、年齢の大きい順に並べる
    ⇒ A:45・24/B:40・38・29/C:53・33
ヒント:基準の順番が大事
先に書いた基準が優先されます。年齢を先にすると、年齢順の中でランクを並べる結果になります。

まず動かしてみよう|この記事のサンプルをその場で試せます

練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。

サンプルデータ

以下は、上記画像のExcelデータですので、ダウンロードして練習として使用ください。

練習用Excelファイル(無料ダウンロード)
この記事の解説で使うExcelデータです。数式と練習データが入っているので、本文の式を同じ表で試せます。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

以下のサンプルデータをExcelシートにコピーして、操作の準備をしてください。

ABCD
1No会員名ランク年齢
21成沢 卓也A45
32日比野 健B29
43大崎 由香C53
54水戸 夏美B38
65木下 直樹A24
76村山 美代B40
87野田 亨C33

数式の解説

SORTBY関数で複数のキーを指定する場合、「基準配列」と「順序」のペアを後ろに追加していきます。

SORTBY(配列,基準配列1,順序1,[基準配列2],[順序2],…)

  1. 配列 (array): A2:D8
    • 並べ替えて表示したい、元のデータ範囲全体です。
  2. 基準配列1 (by_array1): C2:C8
    • 最優先される並べ替えキーとなるセル範囲を指定します。今回は「ランク」列(C2:C8)です。
  3. 順序1 (sort_order1): 1
    • 基準配列1の並べ替え順序です。「1」は昇順を意味します。これで、まずランクがA→B→Cの順に並びます。
  4. 基準配列2 (by_array2): D2:D8
    • 2番目に優先される並べ替えキーとなるセル範囲です。今回は「年齢」列(D2:D8)を指定します。このキーは、基準1で並べ替えた結果、値が同じだったグループ(例:ランクがAのグループ)の中で適用されます。
  5. 順序2 (sort_order2): -1
    • 基準配列2の並べ替え順序です。「-1」は降順を意味します。これにより、同じランクの中では年齢が高い順に並びます。

この数式は、「A2:D8の範囲を、最優先でランク(C列)を昇順に並べ替え、次に同じランク内では年齢(D列)を降順に並べ替えてください」という、高度な命令を一度に実行しているのです。

まとめ

SORTBY関数は、基準となる配列と順序のペアを必要なだけ追加できるため、3つ、4つとさらに複雑な条件での並べ替えも可能です。

  • 優先順位が明確: 最初に指定した基準から順に並べ替えが適用される。
  • 柔軟な順序設定: 各基準ごとに昇順・降順を自由に設定できる。
  • 数式の可読性: どの列を基準にしているかがセル範囲で指定されるため、後から見返しても理解しやすい。

複数の条件が絡み合う複雑なデータでも、SORTBY関数を使いこなせば、瞬時に意図した通りの順序に並べ替えることができます。この強力な武器を手に入れて、データ分析とレポート作成の質を一段と高めましょう。

動的配列・スピル系の関数の全体像は、こちらのまとめで整理しています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次