Deprecated : The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
SORT関数でデータを並べ替える:Excel関数
Home »
エクセル関数一覧表 »
Excel関数の目次 »
SORT関数でデータを並べ替える
更新:2025/2/11;作成:2020/2/8
SORT関数が利用できるExcelの種類(バージョンについて)
SORT関数はExcel for Microsoft 365(サブスクリプション型)、Excel2021,Excel2024(永続ライセンス版)で使える関数です。
ちなみに、Excel2016(永続ライセンス版),Excel2019(永続ライセンス版)では使用できませんので、ご注意ください。
Spill(スピル)
SORT関数
Excel2016,Excel2019
×
×
Excel2021,Excel2024
○
○
Excel for Microsoft365
○
○
SORT関数(ワークシート関数)が使用できない環境の場合は、
エクセル関数の技:関数(数式)を使ってデータを並べ替える をご覧ください。
SORTBY関数の使い方は SORTBY関数で指定した範囲(配列)を対応した範囲の値に応じて並べ替える をご覧ください。
配列を並べ替えて返します topへ
ソート
=SORT(配列 ,[並べ替えインデックス],[並べ替え順序],[並べ替え基準] )
SORT関数の引数
[ ] でくくられた引数は省略可能です。
配列
並べ替える範囲または配列
[並べ替えインデックス]
並べ替えの基準となる行または列を示す数値
(既定は1)
[並べ替え順序]
目的の並べ替え順序を示す数値
昇順の場合は 1 (既定)
降順の場合は -1
[並べ替え基準]
目的の並べ替え方向を示す論理値。
FALSE(既定値)の場合は、行で並べ替え
TRUE の場合は、列で並べ替え
SORT関数と並べ替え機能との違い topへ
大文字と小文字の区別はされません。
D列はSORT関数で昇順に並べ替えています。
F列は並べ替え機能で「大文字と小文字を区別する」の設定をONにして並べ替えています。
SORT関数では大文字と小文字は区別されず、先に出てきた方が上に表示されます。
並べ替えの機能では大文字と小文字は区別され、小文字の方が先に表示されます。
並べ替え機能の手順
[データ]タブの[並べ替え]をクリックします。
[オプション]ボタンをクリックして、「大文字と小文字を区別する」にチェックを入れます。
ふりがな情報は使用されません。
SORT関数で並べ替えるときは「ふりがな情報」は無視され、文字コード順になります。
さらに、SORT関数で並べ替えた後の文字からはふりがな情報が欠落しています。
並べ替え機能では既定で「ふりがな情報」をもとに並べ替えられます。
[問題1]下図のデータをNoの昇順 に並べ替えなさい。
B
C
D
E
F
G
H
2
No
氏名
国語
算数
理科
社会
合計
3
6
木下
86
98
94
87
365
4
3
河合
82
77
83
88
330
5
8
佐々木
81
67
71
86
305
6
4
近藤
72
78
74
73
297
7
7
植田
68
78
75
66
287
8
1
岡田
70
65
71
77
283
9
9
桑田
62
64
61
69
256
10
5
井上
61
55
52
65
233
11
2
会田
55
61
66
48
230
[問題1の解答例]
B14セルの数式は =SORT(B3:H11) とします。
引数の並べ替える範囲にはタイトル行を入れません。 並べ替えるデータの範囲を指定します。
=SORT(配列,[並べ替えインデックス],[並べ替え順序],[並べ替え基準] )
並べ替えの基準を省略しているので、1列目 を基準に並べ替えます。
並べ替えの順序を省略しているので、昇順 で並べ替えます。
引数の並べ替え基準を省略しているので、行で並べ替え が行われます。
下図のように、1列目のNo順に並べ替えができました。
引数を省略しない場合は、=SORT(B3:H11,1,1,FALSE) と指定します。
テーブルを並べ替える
テーブルを使うと、数式は =SORT(テーブル1) となります。
1列目のNoが並べ替えのキーとなり、昇順に並べ替えられます。
SORT関数のメリットは、元データを修正すると、瞬時にその修正が反映されます。
B4セルを 88 に修正しました。すると、並べ替え先データの順序は瞬時に変更されました。
下表の成績表を使って説明します。
算数の得点を得点の大きい方から順番に並べ替えます。
並べ替える範囲は B3:E11
並べ替えインデックスは算数の列は並べ替える範囲の4列目なので 4 とします。
並べ替え順序は降順にしたいので、 -1 とします。J3セルに =SORT(B3:D11,4,-1) と入力しました。
算数の得点の高い順に並べ替えられました。
テーブルを並べ替える
データ範囲がテーブルに変換されている場合、テーブル名は テーブル1 としています。
J3セルの数式は =SORT( テーブル1[[No]:[算数]] ,4,-1) となります。
氏名の昇順に並べ替えた例です。
B15セルには =SORT(B3:H11,2) と入力しています。
並べ替えにはふりがな情報は使用されず、文字コード順に並べ替えられます。
Q列にK列の文字コードを表示しています。氏名の文字コード順に並べ替えられているのが確認できます。
Excelの並べ替えの機能(既定)とは異なることにご注意ください。
岡田さんのデータを降順に並べ替えてみます。列方向で並べ替えます。
C16セルに =SORT(C2:H3, 2 , -1 ,TRUE) と入力しました。
並べ替える範囲は C2:H3
並べ替えインデックスは並べ替える範囲の2行目を基準にするので、 2 とします。
並べ替え順序は降順にしたいので、 -1 とします。
並べ替え基準は列方向で並べ替えたいので TRUE とします。 岡田さんの得点の高い順に並べ替えられました。
(氏名は漢字なので、数値より大きくなりますので、範囲に氏名を加えてもOKな結果となっています)
C16セルに =SORT(C3:H11, 6 , -1 ) と入力するだけでデータ表を並べ替えることができます。
配列にはタイトル行を除いたデータだけを指定します。C3:H11 としています。
並べ替えインデックスは合計の値を基準にしたいので、合計は配列の左から6列目なので 6 と指定します。
並べ替え順は降順としたいので -1 とします。
テーブルを並べ替える
データリストをテーブルに変換した場合、テーブル名は テーブル1 としています。
C14セルの数式は =SORT(テーブル1[[氏名]:[合計]],6,-1) とします。
国語の得点が高い順で、同点なら算数の得点が高い順に並べ替えます。
成績表のデータは上記までと異なっていますので、ご注意ください。
まず、算数の得点が高い順に並べ替えます。
B14セルに =SORT(B3:H11,4,-1) と入力しています。
並べ替える範囲は B3:H11 とします。
並べ替えインデックスは並べ替える範囲の4列目(算数)を基準にするので、 4 とします。
並べ替え順序は降順にしたいので、 -1 とします。
次に、国語の得点の高い順に並べ替えます。
B25セルに =SORT( SORT(B3:H11,4,-1) ,3,-1) と入力します。
つまり、算数の得点に並べ替えたものをさらに、国語の得点の高い順に並べ替えます。
並べ替える範囲は SORT(B3:H11,4,-1) とします。
並べ替えインデックスは並べ替える範囲の3列目(国語の列)を基準にするので、 3 とします。
並べ替え順序は降順にしたいので、 -1 とします。
テーブルを並べ替える
データ範囲がテーブルの場合、テーブル名は テーブル1 としています。
B14セルの数式は =SORT( SORT(テーブル1,4,-1) ,3,-1) となります。
上記のように、14セルの数式は =SORT( SORT(テーブル1,4,-1) ,3,-1) としたデータがあります。
この並べ替えたデータから、Noと氏名と合計だけを取り出します。
B14セルには =FILTER( SORT(SORT(テーブル1,4,-1),3,-1) ,{1,1,0,0,0,0,1}) としています。
{1,1,0,0,0,0,1} として、表示する列は 1(TRUE)、表示しない列は 0(FLASE)と前列をどちらか指定しています。
上記では配列を使って、指定した列のデータを表示しましたが、ここではちょっと意地悪な列の順番としています。
社会、国語と順番が入れ替わっていますので、上の方法ではうまくできません。
ポイントは 下図のように、XMATCH関数で列番号{1,2,6,3} を返すことです。
No,名前、社会、国語の順番でデータを取り出してみます。
CHOOSECOLS関数とXMATCH関数を利用しています。
CHOOSECOLS関数はExcel for Microsoft365,Excel2024で使用できる関数です。
XMATCH関数はExcel2021以降で使用できます。
B16セルの数式は
=CHOOSECOLS(
SORT(SORT(テーブル1,4,-1),3,-1) ,
XMATCH(J2:M2,テーブル1[#見出し]))
としています。
スポンサードリンク
よねさんのWordとExcelの小部屋 »
エクセル関数一覧表 » SORT関数の使い方
PageViewCounter
Since2006/2/27