【エクセル時短】は「少しでも早く仕事を終わらせたい!」というビジネスパーソンのみなさんに、Excelの作業効率をアップするワザをお届けする連載です。

Excel 2021とMicrosoft 365で利用可能

データの並べ替えは、Excelの基本的な操作の1つです。並べ替えには「フィルター」機能が定番ですが、並べ替え前の表を残しておけないのが弱点です。表を丸ごとコピーしておけばいいのですが、あまりスマートではありません。

元の表を残しつつ、並べ替えたデータを別の表として用意したいときは、新関数のSORT(ソート)関数またはSORTBY(ソートバイ)関数を使ってみましょう。本記事執筆時点では、Excel 2021とMicrosoft 365のExcelで利用可能です。

お使いのExcelがSORT関数とSORTBY関数に対応しているかどうかは、セルや数式バーに「=so」と入力したときに表示される関数の候補で判断できます。

SORT/SORTBY関数でデータを並べ替える

「=so」と入力したときの候補に「SORT」「SORTBY」と表示されれば、これらの関数を利用可能です。

「データの並べ替えのために、わざわざ関数を利用するなんて面倒くさそう......」という人もいるかもしれませんが、ちょっと待ってください。

SORT関数とSORTBY関数は「スピル」に対応しているため、数式の結果が複数のセルにまとめて表示されます。つまり、入力する数式は1つだけ。数式の入力後にコピーする必要はないため、大きな表のデータを並べ替えたいときにも効率的に作業できるというメリットがあります。

SORT関数・SORTBY関数の構文

2つの関数の構文をまとめて見ていきましょう。

SORT関数は、並べ替えの基準を1つしか指定できませんが、列方向の並べ替えが可能です。SORTBY関数は、最大126個まで、並べ替えの基準を複数指定できます。

=SORT範囲, 基準, 順序, データの並び, )

  • [範囲]......元のデータの範囲を指定します。
  • [基準]......並べ替えの基準となる列、または行の位置を指定します。
  • [順序]......並べ替えの順序を指定します。昇順は「1」、降順は「-1」です。
  • [データの並び]......データが並んでいる方向を指定します。行方向(右方向)は「TRUE」、列方向(下方向)は「FALSE」です。省略した場合は「FALSE」として扱われます。

=SORTBY範囲, 基準1, 基準1の順序, 基準2, 基準2の順序, ..., 基準126, 基準126の順序, )

  • [範囲]......元のデータの範囲を指定します。
  • [基準]......並び替えの基準となるデータの範囲を指定します。
  • [順序]......並べ替えの順序を指定します。昇順は「1」、降順は「-1」です。

行方向も列方向も並べ替えられるSORT関数

構文を理解したところで、まずはSORT関数の使い方を紹介します。

SORT関数では、行方向(右方向)にも列方向(下方向)にも並べ替えが可能です。この方向は4つ目の引数[データの並び]で指定します。多くの表では先頭行に見出しがあり、列方向(下方向)にデータが並んでいることがほとんどなので、省略(=FALSE)と覚えてしまってもいいでしょう。

2つ目の引数[基準]インデックスで指定する必要があるため、戸惑うかも知れません。左端の列、上端の行を「1」として、右方向/下方向に「2」「3」......と数えます。

ここでは、以下の画面のようにセルA2からD28に入力されたデータを、[単価]列を基準に降順で並べ替えてみます。[単価]列はインデックスで「3」なので、2つ目の引数[基準]は「3」です。

1SORT関数を入力する

SORT/SORTBY関数でデータを並べ替える

あらかじめ、並べ替えた後の表の見出しを入力しておきます。セルE2に「=SORT(A2:C28,3,-1)」と入力します。

2[単価]列を基準に並べ替えられた

SORT/SORTBY関数でデータを並べ替える

[単価]列を基準に並べ替えられました。SORT関数はスピルに対応しているので、数式をコピーすることなく複数のセルに結果が表示されます。

複数列で並べ替えられるSORTBY関数

続いて、SORTBY関数の使い方を見ていきます。

SORTBY関数は、複数列を基準にした並べ替えが可能です。1つ目の引数[範囲]を対象に、[基準][基準の順序]を指定します。先に指定した並べ替えの基準が優先されます。

ここではセルA2からD28に入力されたデータを、[単価]列の昇順、[製品番号]列の降順で並べ替えます。

なお、並べ替えの基準列は1つのみの指定でも構いません。[基準]はセル範囲で指定するため、SORT関数よりも使い勝手がいいともいえます。

1SORTBY関数を入力する

SORT/SORTBY関数でデータを並べ替える

あらかじめ表の見出しを入力しておき、セルE2に「=SORTBY(A2:C28,C2:C28,1,A2:A28,-1)」と入力します。

2複数列を基準に並べ替えられた

SORT/SORTBY関数でデータを並べ替える

[単価]列の昇順、[製品番号]列の降順で並べ替えできました。SORTBY関数もスピルに対応しているので、数式をコピーする必要はありません。

SORT関数とSORTBY関数の使い方を解説しました。実際に使ってみると、意外と簡単だと感じるのではないでしょうか。

並べ替える前の表を残したまま結果を表示できるのも便利なので、フィルター機能にこだわらず、ぜひ利用してみてください。

関連記事