スポンサードリンク | |
作成:2020/5/18, 2021/06/27
SORTBY関数で複数の基準で並べ替える | SORTBY関数で特定の配列を外の基準で並べ替える |
SORTBY関数で列方向を並べ替える |
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関数 をご覧ください。
配列 | 並べ替える範囲または配列 |
基準配列1 | 並べ替えの基準にする配列または範囲 |
[並べ替え順序1] | 目的の並べ替え順序を示す数値 昇順の場合は 1 (既定) 降順の場合は -1 |
[基準配列2] | 並べ替えの基準にする配列または範囲 |
[並べ替え順序2] | 目的の並べ替え順序を示す数値 昇順の場合は 1 (既定) 降順の場合は -1 |
D列はSORTBY関数で昇順に並べ替えています。
F列は並べ替え機能で「大文字と小文字を区別する」の設定をONにして並べ替えています。
SORTBY関数では大文字と小文字は区別されず、先に出てきた方が上に表示されます。
並べ替えの機能では大文字と小文字は区別され、小文字の方が先に表示されます。
SORTBY関数で並べ替えるときは「ふりがな情報」は無視され、文字コード順が昇順になります。
並べ替え機能では既定で「ふりがな情報」をもとに並べ替えられます。
=SORTBY(C3:C9,C3:C9,1) とすると、県名の文字コード順に並べ替えられます。
なお、この場合引数の 1 は省略可能ですので、=SORTBY(C3:C9,C3:C9) とすることができます。
引数の並べ替える順序を省略するか、1 を指定します。
並べ替える基準をD3:D9に数値で入力しています。この数値の昇順にデータを並べ替えます。
=SORTBY(C3:D9,D3:D9,1) とします。
なお、この場合引数の 1 は省略可能ですので、=SORTBY(C3:D9,D3:D9) とすることができます。
引数の並べ替える順序で -1 を指定します。
=SORTBY(C3:D9,D3:D9,-1) とすると、並べ替える順序の入力した数値(D3:D9)の降順にデータを並べ替えることができます。
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 |
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,成績表[#見出し]))
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 |
下図のC1:G1セルに入力した順番に列を並べ替えたい場合、
C8セルに =SORTBY(C2:G6,C1:G1) と入力します。
または、数式内に配列で{3,5,1,2,3}と指定することもできます。
C8セルに =SORTBY(C2:G6,{3,5,1,2,3}) と入力します。
スポンサードリンク
PageViewCounter
Since2006/2/27