• Excel
  • 関数
  • MicrosoftOffice365

Excel(エクセル)のSORT関数でデータを並べ替え!使い方や注意点を解説

2023.03.16

Excel(エクセル)のSORT関数でデータを並べ替え!使い方や注意点を解説

目次

Excel(エクセル)には400種類以上の関数があり、バージョンアップごとに新しい関数が登場していることをご存じでしょうか?今回はExcelのバージョンがMicrosoft365または2021以降で使用できる、「並べ替え」ができる関数についてご紹介します。

データを並べ替えする際、従来は《データ》タブ-《並べ替えとフィルター》グループの《並べ替え》を使用して、データそのものを並べ替えていました。

関数で「並べ替え」をすることで、以下のメリットがあります。

  • データそのものを「並べ替え」せず、「並べ替え」後のデータは別のセルに表示ができる
  • 関数を組み合わせて使用することで、元の範囲の変更も自動で反映される

「並べ替え」ができる関数について、実務で使用する方法やポイントをご紹介します。

EXJ_みずき

監修:みずき さん
EXCEL女子の研修講師をしています。Excel研修では「覚える」だけではなく「理解する」ことで、自身の力としてExcelスキルを身につけられる研修を実施しています。研修をするたびにExcelが大好きになり、Excelってすごい!と実感しています。Excelの他には写真が好きで食べ物や風景を撮影しています!

SORT関数とは

SORT関数は並べ替えを実施する関数で、指定した範囲のデータを、列の場所に並べ替えてリストを作成します。

SORT関数の基本構文は下記の通りです。

=SORT( 配列,[並べ替えインデックス],[並べ替え順序],[並べ替え方向] )

指定した範囲のデータを、列の場所に並べ替えてリストを作成する
  • 配列:並べ替える範囲を指定 ※タイトル行は含めない
  • インデックス:並べ替えの基準となる列または行の位置を、先頭を1として数値で指定
  • 順序: 1(昇順)、-1(降順)を指定 ※省略すると1(昇順)となる
  • 方向:並べ替えの方向を指定 ※TRUE:列方向、FALSE:行方向、省略するとFALSE(行方向)となる
※抽出結果はスピルされて複数行列にわたって表示
※SORT関数はMicrosoft365、Excel2021のみで使用可能な関数


関数の引数には配列(並べ替えたい範囲)を指定し、引数が[]になっている場合は省略可能です。
SORT関数では、関数の計算結果がスピルされ複数行列にわたって範囲として返ってきます。

「スピル」については、以下の記事をご確認ください。
スピルとは?Excelの常識が変わる革新的な機能!

SORT関数を活用した並べ替え

ここでは、SORT関数の基本的な使い方をご紹介します。
【E3】セルを起点とし、表の内容を試験日順に並べ替えて表示します。

(1)【E3】セルに「=SORT(」と入力

【E3】セルに「=SORT(」と入力

(2)配列には並べ替えたい範囲を指定
タイトル行は含まないので、「A3:C15,」を指定すると、その範囲を並べ替えることができます。

配列には並べ替えたい範囲を指定
(3)日付を基準に並べ替える
日付は選んだ範囲の1列目に記入されているので「1,」と入力します。ここでは、A列の試験日を指定しています。

日付を基準に並べ替える

(4)並べ替え順序は昇順で並べ替えをするので「1,」と入力
今回は昇順なので1と指定しています。-1と指定すると降順となり、省略すると1(昇順)となります。

並べ替え順序は昇順で並べ替えをするので「1,」と入力

(5)並べ替えの方向は、行方向で並べ替えをするので、「FALSE」を指定
FALSEを指定し、Enterキーを押して数式を確定すると、並べ替えた範囲が表示されます。

並べ替えの方向は、行方向で並べ替えをするので、「FALSE」を指定

インデックス以降の引数は省略が可能なため「=SORT(A3:C15)」と入力しても同様の結果となり、この数式はセル範囲【A3:C15】を、1列目を基準に昇順で並べ替えるという意味です。

新しいデータを追加する

左側の表の16行目に新しいデータを追加します。

SORT関数は「A3:C15」の範囲で引数が指定されているため、左側の表にデータが増えても、並べ替えの範囲は自動で変更されません。

「A3:C15」の範囲で引数が指定されているため、左側の表にデータが増えても、並べ替えの範囲は自動で変更されません。

データが増えた際に並べ替えの範囲を自動で対応させるには、SORT関数の範囲を指定する際に、INDIRECT関数とCOUNTA関数を使用します。

INDIRECT関数は、指定される文字列のセル参照を返す関数で、基本構文は下記の通りです。

=INDIRECT( 参照文字列, [参照形式] )

指定した範囲のデータを、列の場所に並べ替えてリストを作成する
  • 参照文字列:セル参照を表す文字列をA1形式またはR1C1形式で指定
  • 参照形式:[参照文字列]の形式を以下のように指定
    TRUEまたは省略:A1形式/FALSE:R1C1形式


COUNTA関数は、
範囲に含まれる空白ではないセルの個数を返す関数で、基本構文は下記の通りです。

=COUNTA( 値1, [値 2],・・・)

指定した範囲のデータの個数を返す
  • 値1:必ず指定 ※データの個数を数えたい値やセル、セル範囲を指定

(1)【E3】セルの数式を「=SORT(INDIRECT("A3:C"&COUNTA(A:A)+1))」と変更
この数式について確認してみましょう。

  1. A列のデータの個数をCOUNTA関数で数える
  2. INDIRECT関数で「”A3:C16”」という文字列をセル参照に変更
  3. SORT関数の範囲がA3:C16となる

参照となるセルを文字列で入力する必要があるので「”A3:C”」、C列の最終行が可変になりますので、ここでCOUNTA関数を使用します。文字列を「” (ダブルクォーテーション)」で括り、「&COUNTA」でつなぎます。
COUNTA関数はA列のデータの個数を数え、1行目が空白になっていますので、「+1」と入力し「 ) 」で閉じてEnterキーで確定します。

【E3】セルの数式を「=SORT(INDIRECT("A3:C"&COUNTA(A:A)+1))」と変更

(2)追加されているデータも並べ替えの対象になる
左側の表に追加されているデータも並べ替えの対象になり、右側の表に反映されます。

左側の表に追加されたデータが右側の表に反映されました

さらに新しいデータが加わった場合、セル範囲が可変になっているため、並べ替えの対象に新しいデータが追加されます。

さらに新しいデータが加わった場合、セル範囲が可変になっているため、並べ替えの対象に新しいデータが追加されます

SORT関数の参照範囲が可変で設定されることで、データが増えても並べ替えの範囲が自動で変更されます。

 

↑ 記事TOP

SORTBY関数とは

SORTBY関数とは、指定した範囲のデータを複数の基準で別の場所に並べ替えてリストを作成する関数です。並べ替えのキーが2つ以上ある場合はSORT関数ではなくSORTBY関数を使用します。

SORTBY関数の基本構文は下記の通りです。

= SORTBY( 配列,基準1,[順序1],[基準2,順序2],・・・,[基準126,順序126] )

指定した範囲のデータを、列の場所に並べ替えてリストを作成する
  • 配列:並べ替える範囲を指定 ※タイトル行は含めない
  • 基準:並べ替えの基準にする配列または範囲を指定
  • 順序:1(昇順)、-1(降順)を指定 ※省略すると1(昇順)となる
※「配列」および「基準」は同じサイズ
※SORTBY関数では方向を指定する必要がなく、基準の範囲で行列を判断
※SORTBY関数はMicrosoft365、Excel2021でのみ使用可能な関数

SORTBY関数を活用した並べ替え

ここでは、SORTBY関数の基本的な使い方をご紹介します。
【E3】セルを起点とし、表の内容を科目の昇順に並べ替えてみましょう。科目が同様の場合は点数が高い順に並べるものとします。

(1)【E3】セルを選択し、「=SORTBY(」と入力

【E3】セルを選択し、「=SORTBY(」と入力

(2)配列には並べ替える範囲を指定するため、「A3:C15」を指定し、「,」を入力

img_excel-sort-sortby_11

(3) 基準配列1に科目のセル範囲「B3:B15」を指定
まず1つ目の基準が科目になります。

基準配列1に科目のセル範囲「B3:B15」を指定

(4) 科目は昇順で並べ替えるため、並べ替え順序1に「1,」(昇順)と入力

並べ替え順序1に「1,」(昇順)と入力

(5) 2つ目の並べ替えの基準を入力
科目が同様の場合、点数の降順で並べ替えるので、基準配列2に点数のセル範囲「C3:C15」を指定します。

2つめの並べ替えの基準を入力
(6) 並べ替え順序2に「-1,」(降順)と入力
Enterキーで数式を確定すると並べ替えた範囲が表示されます。 科目の昇順、科目が同じ場合は点数の高い順で並べ替えられました。

 基準配列2に「-1,」(降順)と入力

SORT関数・SORTBY関数利用時の注意点

SORT関数やSORTBY関数を利用する際の注意点や、Excelの並べ替えとの違いを解説します。

配列の範囲と基準配列の範囲のサイズ

SORTBY関数を使用する時、配列の範囲と基準配列の範囲のサイズが違うとエラーになるので注意しましょう。

配列の範囲と基準配列の範囲のサイズが違うとエラーになるので注意しましょう

ふりがな情報

SORTBY関数で並べ替えるときは「ふりがな情報」は無視され、文字コード順になります。Excelの並べ替え機能では既定で「ふりがな情報」をもとに並べ替えられます。

大文字と小文字の区別

大文字と小文字は区別されず、先に出てきた方が上に表示されます。Excelの並べ替えの機能では大文字と小文字は区別され、小文字の方が先に表示されます。

SORT関数・SORTBY関数と一緒に利用すると便利な関数

SORT関数SORTBY関数と一緒に利用すると便利なUNIQUE関数についてご紹介します。
UNIQUE関数は選択した範囲のデータから重複を削除したデータを抽出し、リストを作成する関数です。

UNIQUE関数の基本構文は下記の通りです。

= UNIQUE( 配列,[列の比較],[回数指定] )

選択した範囲のデータから重複を削除したデータを抽出し、リストを作成する
  • 配列:重複をなくしたい範囲を指定
  • 列の比較:元のデータの方向を指定
    • TRUE(列方向)、FALSE(行方向)を指定
    • 省略すると、FALSE(行方向)となる
  • 数指定:[範囲]の中に複数回現れるデータの扱いを指定
    • TRUE:1回だけ現れるデータを取り出す
    • FALSE:複数回現れるデータを1つにまとめる
※抽出結果はスピルされて複数行列にわたって表示されます。


「UNIQUE関数」の詳細については、以下の記事をご確認ください。
UNIQUE関数とは?一瞬でリスト化!重複データにはもう悩まない!

UNIQUE関数の基本的な使い方

【E3】セルを起点として、重複を削除した科目一覧を表示してみましょう。

(1)【E3】セルを選択し、「=UNIQUE(」と入力

【E3】セルを選択し、「=UNIQUE(」と入力

(2)科目のデータを取り出すために「B3:B14」を指定し、Enterキーで確定
「PowerPoint」「Excel」「Word」と重複のないデータが表示されました。
※回数の列にはあらかじめ実施回数を求める数式が入力されています。

科目のデータを取り出すために「B3:B14」を指定し、Enterキーで確定

(3)左側の表のデータが増えたら右側の表に反映されるように、数式を変更
ここでもINDIRECT関数とCOUNTA関数を使用します。まず、「=UNIQUE(INDIRECT(“B3:B”」と入力し、続いて「&COUNTA(A:A)+1))」と指定すると可変になります。
”B3:B”」は文字列として指定します。「&」でつなぎ、COUNTA関数を入力します。

左側の表のデータが増えたら右側の表に反映されるように、数式を変更

(4)15行目に新たなデータを追加
数式を追加すると、UNIQUE関数で重複を削除したデータも追加されました。

15行目に新たなデータを追加

また、F列にはあらかじめCOUNTIF関数という、条件に一致したデータの個数を数える関数が入力されているので、F列には各科目の試験回数が表示されました。

COUNTIF関数もスピルで引数が入力されているため、UNIQUE関数の結果が増えるとCOUNTIF関数の集計結果も自動的に範囲を拡張してくれます。

(5)UNIQUE関数で求めた範囲に、SORT関数を使用する
UNIQUE関数の前にカーソルを立て、「SORT(」と入力し、Enterキーで数式を確定します。すると、UNIQUE関数で求めた範囲をSORT関数で並べ替えることができました。

UNIQUE関数で求めた範囲に、SORT関数を使用する

最新関数は「Excel研修」で習得しよう

「SORT関数・SORTBY関数」は、関数で並べ替えすることのできる大変便利な関数です。今までデータが増えるたびに行っていた並べ替えを、関数で自動化することによって日々の業務を少しずつ効率化していきましょう。

EXCEL女子が開催する「Excel研修」では、今回ご紹介した「SORT関数・SORTBY関数」、「UNIQUE関数」を含むMicrosoft365で使用できる最新関数も取り扱っています。

実務経験者が講師のため、現場ですぐに使うことができる実践的なカリキュラムのご提供が可能です。
まずは詳細だけでも聞いてみたい、業務効率化したいけど何をしたらいいのか分からなくて困っている、といった内容でもいつでもお気軽にご相談ください。

 

PAGE TOP