スポンサードリンク | |
作成:2020/2/8,更新: 2023/3/13
SORT関数で引数を省略した例 | |
SORT関数で列を並べ替える | SORT関数で行を並べ替える |
SORT関数を使って配列を並べ替える | SORT関数を使って複数条件で並べ替える |
FILTER関数を使って必要な列だけを表示する | CHOOSECOLS関数を使って不連続な列を表示する |
SORT関数はExcel for Microsoft 365(サブスクリプション型)で使える関数です。
(Office365は2020/4/22からは Microsoft365となりました)
ちなみに、Excel2016(永続ライセンス版),Excel2019(永続ライセンス版)では使用できませんので、ご注意ください。
なお、2021/10/5頃から市販されている Excel2021(永続ライセンス版)でも使用できます。
Spill(スピル) | SORT関数 | |
Excel2016 | × | × |
Excel2019 | × | × |
Excel2021 | ○ | ○ |
Excel for Microsoft365 | ○ | ○ |
SORT関数(ワークシート関数)が使用できない環境の場合は、
エクセル関数の技:関数(数式)を使ってデータを並べ替える をご覧ください。
SORTBY関数の使い方は SORTBY関数で指定した範囲(配列)を対応した範囲の値に応じて並べ替える をご覧ください。
配列 | 並べ替える範囲または配列 |
[並べ替えインデックス] | 並べ替えの基準となる行または列を示す数値 (既定は1) |
[並べ替え順序] | 目的の並べ替え順序を示す数値 昇順の場合は 1 (既定) 降順の場合は -1 |
[並べ替え基準] | 目的の並べ替え方向を示す論理値。 FALSE(既定値)の場合は、行で並べ替え TRUE の場合は、列で並べ替え |
D列はSORT関数で昇順に並べ替えています。
F列は並べ替え機能で「大文字と小文字を区別する」の設定をONにして並べ替えています。
SORT関数では大文字と小文字は区別されず、先に出てきた方が上に表示されます。
並べ替えの機能では大文字と小文字は区別され、小文字の方が先に表示されます。
SORT関数で並べ替えるときは「ふりがな情報」は無視され、文字コード順になります。
さらに、SORT関数で並べ替えた後の文字からはふりがな情報が欠落しています。
並べ替え機能では既定で「ふりがな情報」をもとに並べ替えられます。
SORT関数は引数の並べ替えインデックスを省略すると 1 が適用されます。
引数の並べ替え順序を省略すると、 1(昇順)が適用されます。
引数の並べ替え基準を省略すると、FALSE(既定値)が適用され、行で並べ替えが行われます。
つまり、引数を省略すると1列目を基準に昇順にデータが並べ替えられます。
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 |
数式は =SORT(B3:H11) とします。
引数の並べ替える範囲にはタイトル行を入れません。並べ替えるデータの範囲を指定します。
下図のように、No順に並べ替えができました。
テーブルを使うと、数式は =SORT(テーブル1) となります。
1列目のNoが並べ替えのキーとなり、昇順に並べ替えられます。
SORT関数のメリットは、元データを修正すると、瞬時にその修正が反映されます。
B4セルを 88 に修正しました。すると、並べ替え先データの順序は瞬時に変更されました。
下表の成績表を使って説明します。
国語の得点を得点の大きい方から順番に並べ替えます。
J3セルに =SORT(B3:D11,3,-1) と入力しました。
並べ替える範囲は B3:D11
並べ替えインデックスは国語の列は並べ替える範囲の3列目なので 3 とします。
並べ替え順序は降順にしたいので、 -1 とします。
国語の得点の高い順に並べ替えられました。
データ範囲がテーブルに変換されている場合、テーブル名は テーブル1 としています。
J3セルの数式は =SORT(テーブル1[[No]:[国語]],3,-1) となります。
氏名の昇順に並べ替えた例です。
B15セルには =SORT(B3:H11,2) と入力しています。
並べ替えにはふりがな情報は使用されず、文字コード順に並べ替えられます。
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)と前列をどちらか指定しています。
上記では配列を使って、指定した列のデータを表示しましたが、ここではちょっと意地悪な列の順番としています。
No,名前、社会、国語の順番でデータを取り出してみます。
CHOOSECOLS関数とXMATCH関数を利用しています。
CHOOSECOLS関数はExcel for Microsoft365で使用できる関数です。
B16セルの数式は
=CHOOSECOLS(
SORT(SORT(テーブル1,4,-1),3,-1),
XMATCH(B15:E15,テーブル1[#見出し]))
としています。
スポンサードリンク
PageViewCounter
Since2006/2/27