SORTBY関数で指定した範囲(配列)を対応した範囲の値に応じて並べ替える:Excel関数


スポンサードリンク


作成:2020/5/18,更新 2021/06/27

SORTBY関数で複数の基準で並べ替える SORTBY関数で特定の配列を外の基準で並べ替える
SORTBY関数で列方向を並べ替える

SORTBY関数が利用できるExcelの種類(バージョンについて)

SORTBY関数はExcel for Microsoft365(サブスクリプション型)で使える関数です。
Office365は 2020/4/22 からは Microsoft365となりました。
ちなみに、Excel2016(永続ライセンス版),Excel2019(永続ライセンス版)では使用できませんので、ご注意ください。
なお、2021/10/5頃から市販されている Excel2021(永続ライセンス版)でも使用できます。

Spill(スピル) SORTBY関数
Excel2016 × ×
Excel2019 × ×
Excel2021
Excel for Microsoft365

SORT関数の使い方は SORT関数でデータを並べ替える:Excel関数 をご覧ください。

範囲または配列の内容を対応する範囲または配列の値に基づいて並べ替えます。   topへ
 ソート
=SORTBY(配列,基準配列1,[並べ替え順序1],[基準配列2,並べ替え順序2],...)

SORTBY関数の引数

引数で [ ] でくくったものは省略可です。
配列 並べ替える範囲または配列
基準配列1 並べ替えの基準にする配列または範囲
[並べ替え順序1] 目的の並べ替え順序を示す数値
昇順の場合は 1 (既定)
降順の場合は -1
[基準配列2] 並べ替えの基準にする配列または範囲
[並べ替え順序2] 目的の並べ替え順序を示す数値
昇順の場合は 1 (既定)
降順の場合は -1

SORTBY関数と並べ替え機能との違い

大文字と小文字の区別はされません。

D列はSORTBY関数で昇順に並べ替えています。
F列は並べ替え機能で「大文字と小文字を区別する」の設定をONにして並べ替えています。
SORTBY関数では大文字と小文字は区別されず、先に出てきた方が上に表示されます。
並べ替えの機能では大文字と小文字は区別され、小文字の方が先に表示されます。

ふりがな情報は使用されません。

SORTBY関数で並べ替えるときは「ふりがな情報」は無視され、文字コード順が昇順になります。
並べ替え機能では既定で「ふりがな情報」をもとに並べ替えられます。
=SORTBY(C3:C9,C3:C9,1) とすると、県名の文字コード順に並べ替えられます。
なお、この場合引数の 1 は省略可能ですので、=SORTBY(C3:C9,C3:C9) とすることができます。

SORTBY関数で1つの基準で並べ替える

昇順で並べ替える

引数の並べ替える順序を省略するか、1 を指定します。
並べ替える基準をD3:D9に数値で入力しています。この数値の昇順にデータを並べ替えます。
=SORTBY(C3:D9,D3:D9,1) とします。
なお、この場合引数の 1 は省略可能ですので、=SORTBY(C3:D9,D3:D9) とすることができます。

降順で並べ替える

引数の並べ替える順序で -1 を指定します。
=SORTBY(C3:D9,D3:D9,-1) とすると、並べ替える順序の入力した数値(D3:D9)の降順にデータを並べ替えることができます。

SORTBY関数で複数の基準で並べ替える

SORT関数とSORTBY関数は非常に似た関数です。ここでは、SORTBY関数の特徴的なところを書いてみます。
SORT関数については SORT関数でデータを並べ替える をご覧ください。

下図のデータを使って、複数の基準で並べ替えます。
B C D E F G H
2 No 氏名 国語 算数 理科 社会 合計
3 1 井上 80 55 52 65 359
4 2 河合 70 77 83 88 295
5 3 岡田 80 67 71 86 304
6 4 木下 70 65 71 77 252
7 5 会田 80 98 94 87 245
8 6 桑田 70 61 66 48 318
9 7 近藤 60 64 61 69 299
10 8 佐々木 70 78 74 73 283
11 9 植田 80 78 75 66 254
  1. 国語の点数の高い順で並べ替え、さらに、算数の点数の高い順で並べ替えます。
    まず、国語の点数の高い順で並べ替えてみます。なお、テーブルは 成績表 と名前を付けています。
    B13セルに =SORTBY(成績表,成績表[国語],-1) と入力しました。
  2. さらに、算数の点数の高い順で並べ替えます。
    引数の基準配列2と並べ替え順序2を追加します。
    B13セルの数式を =SORTBY(成績表,成績表[国語],-1,成績表[算数],-1) としました。

SORTBY関数で特定の配列を外の基準で並べ替える

SORTBY関数を使って、サンプルの氏名だけを合計得点の高い順番で並べ替えます。
テーブル内の一部の列を並べ替えるのですが、SORT関数ではちょっと無理なことのようです。

テーブル名が成績表のNoと氏名を合計の得点が高い順に並べ替えます。
J3セルに =SORTBY(成績表[[No]:[氏名]],成績表[合計],-1) と入力しました。

並べ替える順番のデータを J3:J11 に作成しています。
この順番(昇順)で、成績表のNoと氏名を並べ替えます。
L3セルに =SORTBY(成績表[[No]:[氏名]],J3:J11) としています。

FILTER関数を使って、任意の列を表示することもできます。
=FILTER(SORTBY(成績表[[No]:[合計]],J3:J11),{1,1,0,0,0,0,1})

FILTER関数で任意の列を取り出すのに、COUNTIF関数を利用することもできます。
ただし、見出しの順番と取り出す列の順番が同じである必要があります。
=FILTER(SORTBY(成績表[[No]:[合計]],J3:J11),COUNTIF(B14:D14,成績表[#見出し]))

CHOOSECOLS関数XMATCH関数を使うと、順序の異なる列でも取り出すことができます。
=CHOOSECOLS(SORTBY(成績表[[No]:[合計]],J3:J11),XMATCH(B14:D14,成績表[#見出し]))

SORTBY関数で列方向を並べ替える

下表の来店人数の表を使って説明します。
B C D E F G
2 指宿店 鹿屋店 鹿児島店 姶良店 霧島店
3 4月 746 561 640 495 561
4 5月 563 754 545 794 672
5 6月 742 731 737 685 622
6 7月 692 542 450 620 557
  1. 4月の来店人数が多い店から順番に並べ替えたいと思います。
    まずは店名を並べ替えます。
    C8セルに =SORTBY(C2:G2,C3:G3,-1) と入力して、C2:G2の店名を4月の入店数(C3:G3)の大きい順(降順 -1)に並べ替えます。
  2. C9セルに =SORTBY(C3:G6,C3:G3,-1) と入力します。
  3. 行見出しを入力します。

店名の順番を数式内で指定する方法

下図のC1:G1セルに入力した順番に列を並べ替えたい場合、

C8セルに =SORTBY(C2:G6,C1:G1) と入力します。

または、数式内に配列で{3,5,1,2,3}と指定することもできます。
C8セルに =SORTBY(C2:G6,{3,5,1,2,3}) と入力します。

スポンサードリンク



よねさんのWordとExcelの小部屋 »  エクセル関数一覧表 »  SORTBY関数で指定した範囲または配列でデータを並べ替える

PageViewCounter
Counter
Since2006/2/27