Excel(エクセル)には400種類以上の関数があり、バージョンアップごとに新しい関数が登場していることをご存じでしょうか?今回はExcelのバージョンがMicrosoft365または2021以降で使用できる、「並べ替え」ができる関数についてご紹介します。
データを並べ替えする際、従来は《データ》タブ-《並べ替えとフィルター》グループの《並べ替え》を使用して、データそのものを並べ替えていました。
関数で「並べ替え」をすることで、以下のメリットがあります。
「並べ替え」ができる関数について、実務で使用する方法やポイントをご紹介します。
監修:みずき さん
EXCEL女子の研修講師をしています。Excel研修では「覚える」だけではなく「理解する」ことで、自身の力としてExcelスキルを身につけられる研修を実施しています。研修をするたびにExcelが大好きになり、Excelってすごい!と実感しています。Excelの他には写真が好きで食べ物や風景を撮影しています!
SORT関数は並べ替えを実施する関数で、指定した範囲のデータを、列の場所に並べ替えてリストを作成します。
SORT関数の基本構文は下記の通りです。
=SORT( 配列,[並べ替えインデックス],[並べ替え順序],[並べ替え方向] )
指定した範囲のデータを、列の場所に並べ替えてリストを作成する
関数の引数には配列(並べ替えたい範囲)を指定し、引数が[]になっている場合は省略可能です。
SORT関数では、関数の計算結果がスピルされ複数行列にわたって範囲として返ってきます。
「スピル」については、以下の記事をご確認ください。
スピルとは?Excelの常識が変わる革新的な機能!
ここでは、SORT関数の基本的な使い方をご紹介します。
【E3】セルを起点とし、表の内容を試験日順に並べ替えて表示します。
(1)【E3】セルに「=SORT(」と入力
(2)配列には並べ替えたい範囲を指定
タイトル行は含まないので、「A3:C15,」を指定すると、その範囲を並べ替えることができます。
(3)日付を基準に並べ替える
日付は選んだ範囲の1列目に記入されているので「1,」と入力します。ここでは、A列の試験日を指定しています。
(4)並べ替え順序は昇順で並べ替えをするので「1,」と入力
今回は昇順なので1と指定しています。-1と指定すると降順となり、省略すると1(昇順)となります。
(5)並べ替えの方向は、行方向で並べ替えをするので、「FALSE」を指定
FALSEを指定し、Enterキーを押して数式を確定すると、並べ替えた範囲が表示されます。
インデックス以降の引数は省略が可能なため「=SORT(A3:C15)」と入力しても同様の結果となり、この数式はセル範囲【A3:C15】を、1列目を基準に昇順で並べ替えるという意味です。
左側の表の16行目に新しいデータを追加します。
SORT関数は「A3:C15」の範囲で引数が指定されているため、左側の表にデータが増えても、並べ替えの範囲は自動で変更されません。
データが増えた際に並べ替えの範囲を自動で対応させるには、SORT関数の範囲を指定する際に、INDIRECT関数とCOUNTA関数を使用します。
INDIRECT関数は、指定される文字列のセル参照を返す関数で、基本構文は下記の通りです。
=INDIRECT( 参照文字列, [参照形式] )
指定した範囲のデータを、列の場所に並べ替えてリストを作成する
COUNTA関数は、範囲に含まれる空白ではないセルの個数を返す関数で、基本構文は下記の通りです。
=COUNTA( 値1, [値 2],・・・)
指定した範囲のデータの個数を返す(1)【E3】セルの数式を「=SORT(INDIRECT("A3:C"&COUNTA(A:A)+1))」と変更
この数式について確認してみましょう。
参照となるセルを文字列で入力する必要があるので「”A3:C”」、C列の最終行が可変になりますので、ここでCOUNTA関数を使用します。文字列を「” (ダブルクォーテーション)」で括り、「&COUNTA」でつなぎます。
COUNTA関数はA列のデータの個数を数え、1行目が空白になっていますので、「+1」と入力し「 ) 」で閉じてEnterキーで確定します。
(2)追加されているデータも並べ替えの対象になる
左側の表に追加されているデータも並べ替えの対象になり、右側の表に反映されます。
さらに新しいデータが加わった場合、セル範囲が可変になっているため、並べ替えの対象に新しいデータが追加されます。
SORT関数の参照範囲が可変で設定されることで、データが増えても並べ替えの範囲が自動で変更されます。
SORTBY関数とは、指定した範囲のデータを複数の基準で別の場所に並べ替えてリストを作成する関数です。並べ替えのキーが2つ以上ある場合はSORT関数ではなくSORTBY関数を使用します。
SORTBY関数の基本構文は下記の通りです。
= SORTBY( 配列,基準1,[順序1],[基準2,順序2],・・・,[基準126,順序126] )
指定した範囲のデータを、列の場所に並べ替えてリストを作成するここでは、SORTBY関数の基本的な使い方をご紹介します。
【E3】セルを起点とし、表の内容を科目の昇順に並べ替えてみましょう。科目が同様の場合は点数が高い順に並べるものとします。
(1)【E3】セルを選択し、「=SORTBY(」と入力
(2)配列には並べ替える範囲を指定するため、「A3:C15」を指定し、「,」を入力
(3) 基準配列1に科目のセル範囲「B3:B15」を指定
まず1つ目の基準が科目になります。
(4) 科目は昇順で並べ替えるため、並べ替え順序1に「1,」(昇順)と入力
(5) 2つ目の並べ替えの基準を入力
科目が同様の場合、点数の降順で並べ替えるので、基準配列2に点数のセル範囲「C3:C15」を指定します。
(6) 並べ替え順序2に「-1,」(降順)と入力
Enterキーで数式を確定すると並べ替えた範囲が表示されます。 科目の昇順、科目が同じ場合は点数の高い順で並べ替えられました。
SORT関数やSORTBY関数を利用する際の注意点や、Excelの並べ替えとの違いを解説します。
SORTBY関数を使用する時、配列の範囲と基準配列の範囲のサイズが違うとエラーになるので注意しましょう。
SORTBY関数で並べ替えるときは「ふりがな情報」は無視され、文字コード順になります。Excelの並べ替え機能では既定で「ふりがな情報」をもとに並べ替えられます。
大文字と小文字は区別されず、先に出てきた方が上に表示されます。Excelの並べ替えの機能では大文字と小文字は区別され、小文字の方が先に表示されます。
SORT関数SORTBY関数と一緒に利用すると便利なUNIQUE関数についてご紹介します。
UNIQUE関数は選択した範囲のデータから重複を削除したデータを抽出し、リストを作成する関数です。
UNIQUE関数の基本構文は下記の通りです。
= UNIQUE( 配列,[列の比較],[回数指定] )
選択した範囲のデータから重複を削除したデータを抽出し、リストを作成する
「UNIQUE関数」の詳細については、以下の記事をご確認ください。
UNIQUE関数とは?一瞬でリスト化!重複データにはもう悩まない!
【E3】セルを起点として、重複を削除した科目一覧を表示してみましょう。
(1)【E3】セルを選択し、「=UNIQUE(」と入力
(2)科目のデータを取り出すために「B3:B14」を指定し、Enterキーで確定
「PowerPoint」「Excel」「Word」と重複のないデータが表示されました。
※回数の列にはあらかじめ実施回数を求める数式が入力されています。
(3)左側の表のデータが増えたら右側の表に反映されるように、数式を変更
ここでもINDIRECT関数とCOUNTA関数を使用します。まず、「=UNIQUE(INDIRECT(“B3:B”」と入力し、続いて「&COUNTA(A:A)+1))」と指定すると可変になります。
「”B3:B”」は文字列として指定します。「&」でつなぎ、COUNTA関数を入力します。
(4)15行目に新たなデータを追加
数式を追加すると、UNIQUE関数で重複を削除したデータも追加されました。
また、F列にはあらかじめCOUNTIF関数という、条件に一致したデータの個数を数える関数が入力されているので、F列には各科目の試験回数が表示されました。
COUNTIF関数もスピルで引数が入力されているため、UNIQUE関数の結果が増えるとCOUNTIF関数の集計結果も自動的に範囲を拡張してくれます。
(5)UNIQUE関数で求めた範囲に、SORT関数を使用する
UNIQUE関数の前にカーソルを立て、「SORT(」と入力し、Enterキーで数式を確定します。すると、UNIQUE関数で求めた範囲をSORT関数で並べ替えることができました。
「SORT関数・SORTBY関数」は、関数で並べ替えすることのできる大変便利な関数です。今までデータが増えるたびに行っていた並べ替えを、関数で自動化することによって日々の業務を少しずつ効率化していきましょう。
EXCEL女子が開催する「Excel研修」では、今回ご紹介した「SORT関数・SORTBY関数」、「UNIQUE関数」を含むMicrosoft365で使用できる最新関数も取り扱っています。
実務経験者が講師のため、現場ですぐに使うことができる実践的なカリキュラムのご提供が可能です。
まずは詳細だけでも聞いてみたい、業務効率化したいけど何をしたらいいのか分からなくて困っている、といった内容でもいつでもお気軽にご相談ください。