-
Home »
-
エクセル関数一覧表 »
-
Excel関数の目次 »
-
SORTBY関数で指定した範囲(配列)を対応した範囲の値に応じて並べ替える
更新:2024/12/06;作成:2020/5/18
SORTBY関数が利用できるExcelの種類(バージョンについて)
- SORTBY関数はExcel for Microsoft365(サブスクリプション型)、Excel2021、Excel2024(永続ライセンス版)で使える関数です。
ちなみに、Excel2016(永続ライセンス版),Excel2019(永続ライセンス版)では使用できませんので、ご注意ください。
|
Spill(スピル) |
SORTBY関数 |
Excel2016,Excel2019 |
× |
× |
Excel2021,Excel2024 |
○ |
○ |
Excel for Microsoft365 |
○ |
○ |
- SORT関数の使い方は SORT関数でデータを並べ替える:Excel関数 をご覧ください。
SORTBY関数の引数
- 引数で [ ] でくくったものは省略可です。
配列 |
並べ替える範囲または配列 |
基準配列1 |
並べ替えの基準にする配列または範囲 |
[並べ替え順序1] |
目的の並べ替え順序を示す数値
昇順の場合は 1 (既定)
降順の場合は -1 |
[基準配列2] |
並べ替えの基準にする配列または範囲 |
[並べ替え順序2] |
目的の並べ替え順序を示す数値
昇順の場合は 1 (既定)
降順の場合は -1 |
SORTBY関数と並べ替え機能との違い topへ
- 並べ替え機能とは[データ]タブの[並べ替え]で行う並べ替えのことです。
大文字と小文字の区別はされません。
- D列はSORTBY関数で昇順に並べ替えています。
F列は並べ替え機能で「大文字と小文字を区別する」の設定をONにして並べ替えています。
SORTBY関数では大文字と小文字は区別されず、先に出てきた方が上に表示されます。
並べ替えの機能では大文字と小文字は区別され、小文字の方が先に表示されます。
ふりがな情報は使用されません。
- SORTBY関数で並べ替えるときは「ふりがな情報」は無視され、文字コード順が昇順になります。
並べ替え機能では既定で「ふりがな情報」をもとに並べ替えられます。
=SORTBY(B2:B8,B2:B8,1) とすると、県名の文字コード順で並べ替えられます。
なお、この場合引数の 1 は省略可能ですので、 =SORTBY(B2:B8,B2:B8)とすることができます。
SORTBY関数で並べ替えた値にはふりがな情報はなくなっています。
並べ替え機能ではふりがな情報はついたままです。
- ふりがなをC2:C8セルに =PHONETIC(B2) として取り出します。
=SORTBY(B2:B8,C2:C8) とふりがなの順番に並べ替えることができます。
SORTBY関数で1つの基準で並べ替える topへ
昇順で並べ替える
- 引数の並べ替える順序を省略するか、1 を指定します。
並べ替える基準はC2:C8の面積の値の昇順にデータを並べ替えます。
=SORTBY(B2:B8,C2:C8,1) とします。
なお、この場合引数の 1 は省略可能ですので、 =SORTBY(B2:B8,C2:C8) とすることができます。
降順で並べ替える
- 引数の並べ替える順序で -1 を指定します。
=SORTBY(B2:B8,C2:C8,-1) とすると、C2:C8の面積の値の降順にデータを並べ替えることができます。
- 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 |
- 国語の点数の高い順で並べ替え、さらに、算数の点数の高い順で並べ替えます。
まず、国語の点数の高い順で並べ替えてみます。なお、テーブルは 成績表 と名前を付けています。
B13セルに =SORTBY(成績表,成績表[国語],-1) と入力しました。
- さらに、算数の点数の高い順で並べ替えます。
引数の基準配列2と並べ替え順序2を追加します。
B13セルの数式を =SORTBY(成績表,成績表[国語],-1,成績表[算数],-1) としました。
- 国語の得点が同じ場合に、算数の得点が高い順序で並べ替えられました。
- SORTBY関数を使って、サンプルの氏名だけを合計得点の高い順番で並べ替えます。
テーブル内の一部の列を並べ替えるのですが、SORT関数ではちょっと無理なことのようです。
- テーブル名が成績表のNoと氏名を合計の得点が高い順に並べ替えます。
J3セルに =SORTBY(成績表[[No]:[氏名]],成績表[合計],-1) と入力しました。
- ランダムに並べ替えたいと思います。
J3:J11に =RAND() と入力して、乱数を発生しました。
この値の順番(昇順)で、成績表のNoと氏名を並べ替えます。
L3セルに =SORTBY(成績表[[No]:[氏名]],J3:J11) としています。
RANDARRAY関数を使うと J列の作業列は不要です。 =SORTBY(成績表[[No]:[氏名]],RANDARRAY(9))
- FILTER関数を使って、任意の列を表示することもできます。
=FILTER(SORTBY(成績表[[No]:[合計]],成績表[合計],-1),{1,1,0,0,0,0,1})
- FILTER関数で任意の列を取り出すのに、COUNTIF関数を利用することもできます。
ただし、見出しの順番と取り出す列の順番が同じである必要があります。
=FILTER(SORTBY(成績表[[No]:[合計]],J3:J11),COUNTIF(B14:D14,成績表[#見出し]))
- CHOOSECOLS関数とXMATCH関数を使うと、順序の異なる列でも取り出すことができます。
=CHOOSECOLS(SORTBY(成績表[[No]:[合計]],成績表[合計],-1),XMATCH(J2:L2,成績表[#見出し]))
- 下表の来店人数の表を使って説明します。
|
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 |
- 4月の来店人数が多い店から順番に並べ替えたいと思います。
まずは店名を並べ替えます。
C8セルに =SORTBY(C2:G2,C3:G3,-1) と入力して、C2:G2の店名を4月の入店数(C3:G3)の大きい順(降順 -1)に並べ替えます。
- C9セルに =SORTBY(C2:G6,C3:G3,-1) と入力します。
- 行見出しを入力します。
店名の順番を数式内で指定する方法
- B1:G1セルに並べ替えたい順番を入力します。
B8セルに =SORTBY(B2:G6,B1:G1) と入力します。
- 1行目には説明用に列の順番を入力しています。
数式内に配列で列に順番を{1,4,5,2,6,3}と指定することもできます。
C8セルに =SORTBY(B2:G6,{1,4,5,2,6,3}) と入力します。
スポンサードリンク
よねさんのWordとExcelの小部屋 »
エクセル関数一覧表 » SORTBY関数で指定した範囲または配列でデータを並べ替える
PageViewCounter
Since2006/2/27