【エクセル時短】は「少しでも早く仕事を終わらせたい!」というビジネスパーソンのみなさんに、Excelの作業効率をアップするワザをお届けする連載です。
データの並べ替えを自由自在に
Excelの表を特定の列を基準に並べ替える操作は、業務で頻繁に行うことがあります。このとき、単一の列ではなく、複数の列を基準に並べ替える方法は分かりますか?
例えば以下のように、[単価]が大きい(高い)順に並べたうえで、[取扱開始]が古い順に並べる、といった具合です。
[単価]列と[取扱開始]列という、複数の列を基準に並べ替えが行われています。
このような結果を得るには、[並べ替え]ダイアログボックスを使う方法がポピュラーです。操作全体の流れを確認したいときは、以下の動画をご覧ください。
詳しい操作方法や注意点のほか、SORTBY関数を使った別の方法については、本記事で解説しています。まずは前提となるフィルターの設定から見ていきましょう。
表にフィルターを設定する
表の並べ替えを行うとき、フィルターボタンを表示せずに操作してしまうと、致命的なミスにつながります。表の選択を間違ってしまった場合、ある列のみ並べ替えられて、ほかの列は元のままと、行ごとのデータがバラバラになってしまうためです。
以下のように、範囲選択を間違えたまま並べ替えてしまうと取り返しがつきません。
表内の4つの列のうち、3つの列しか選択されていない状態で[並べ替え]ダイアログボックスを呼び出しています。このまま並べ替えてしまうと、[取扱開始]列の並び順はそのままで、データがバラバラになってしまいます。
このようなミスを防ぐために、あらかじめフィルターを設定しておきましょう。連続したデータをひとつの表として認識させることができ、セル範囲の選択ミスも防げます。
表のタイトルを選択して、[データ]タブにある[フィルター]ボタンをクリックします。[Ctrl]+[Shift]+[L]のショートカットキーを利用しても構いません。
これで並べ替えの準備は完了です。以下で解説する[並べ替え]ダイアログボックス、またはSORTBY関数を使って、複数列を基準に並べ替えてみましょう。
[並べ替え]ダイアログボックスを利用する
2つ以上の列を基準として、ある列は昇順、ある列は降順など、複数の条件を指定して並べ替えたいときは、[並べ替え]ダイアログボックスが簡単です。フィルターを設定した状態であれば、表内のセルを選択しておくだけで並べ替えの範囲が自動的に認識されるので、ミスの心配はありません。
ここでは[単価]が大きい順で、かつ[取扱開始]の古い順で並べ替えてみます。[並べ替え]ダイアログボックスでは、上に表示される条件が優先されます。
1[並べ替え]ダイアログボックスを表示する
表の中のセルを選択しておきます。[データ]タブの[並べ替え]ボタンをクリックします。
21つめの条件を指定する
[並べ替え]ダイアログボックスが表示されました。[列]に[単価]、[並べ替えのキー]に[セルの値]、[順序]に[大きい順]を指定します。[レベルの追加]をクリックします。
22つめの条件を指定する
2つめの条件を指定する項目が表示されました。[列]に[取扱開始]、[並べ替えのキー]に[セルの値]、[順序]に[古い順]を指定します。[順序]の選択肢はデータの種類によって異なります。指定できたら[OK]をクリックします。
3複数列を並べ替えられた
[単価]が大きい順で、かつ[取扱開始]が古い順で並べ替えられました。
SORTBY関数を利用する
元の表を残したまま、並べ替えの結果を確認したいときは、SOTRBY関数が便利です。フィルター設定の有無を気にしなくてもいいメリットもあります。本記事執筆時点では、Excel 2021とMicrosoft 356のExcelで利用可能です。
SORTBY関数は、並べ替えの結果をスピルで表示するため、1つのセルに数式を入力するだけ。引数[範囲]を対象に、[基準]と[順序]のセットで指定する簡単な構文です。
=SORTBY
(
範囲,
基準1,
基準1の順序,
基準2,
基準2の順序,
...,
基準126,
基準126の順序,
)
- [範囲]......元のデータの範囲を指定します。
- [基準]......並び替えの基準となるデータの範囲を指定します。
- [順序]......並べ替えの順序を指定します。昇順は「1」、降順は「-1」です。
先ほどと同じ並べ替えをするなら、[範囲]は表全体(セルA2~D19)、1つめの基準は[単価]列(セルC2~C19)で降順「-1」、2つめの基準は[取扱開始]列(セルD2~D19)で昇順「1」となります。
入力する数式は以下の通りです。[取扱開始]列で昇順と指定するのは、日付が古いほどシリアル値(数値)が小さいためです。
=SORTBY(A2:D19,C2:C19,-1,D2:D19,1)
1SORTBY関数を入力する
SORTBY関数の結果を表示する上のセルに見出しを入力しておきます。セルF2に「=SORTBY(A2:D19,C2:C19,-1,D2:D19,1)」と入力します。
2複数列を並べ替えられた
[単価]が大きい順、[取扱開始]が古い順で並べ替えられました。[並べ替え]ダイアログボックスを利用したときと同じ結果ですね。
定番の[並べ替え]ダイアログボックスも便利ですが、元の表を残しておきたいときは、SORTBY関数も重宝します。使いやすい方法を活用してください。