- 公開日:
- 更新日:
エクセルでソートするためのプルダウンを作る方法
この記事では、エクセルでソートするためのプルダウンを作る方法をご紹介します。
プルダウンとSORT関数、MATCH関数を組み合わせることでプルダウンで選択した項目を基準に表内のデータを並び替えるように設定することが可能です。
ただし、SORT関数はExcel 2021もしくはMicrosoft 365でのみ利用できる関数になるためのご注意ください。
ソートができるプルダウンについて
プルダウンと関数を組み合わせることによって、プルダウンで選択した項目に従ってリストを並べ直す(ソートする)表を作成することができます。
具体的には以下のような表になります。

上の画像のB4セルからG10セルは社員リストです。
B1セルに表の見出しが追加されたプルダウンが設定してあります。

B1セルのプルダウンの右側にある三角ボタンを押して、年齢を選択します。

すると、社員リストが年齢で昇順に並び替えられました。
今回はこのようにプルダウンで選んだ選択肢にしたがってデータを並べ替えられる表を作成します。
方法の詳細は下記「エクセルでソートするためのプルダウンを作る方法」セクションをご確認ください。
エクセルでソートするためのプルダウンを作る方法
今回は社員リストを使って、プルダウンで選択した項目で表が昇順に並ぶように設定します。

まずは表を作成します。今回は上のような社員リストを使い、B1セルに設定したプルダウンで表を項目ごとに並べ替えます。

別シート(例:表)に同じような表を作成しておきます。

まずは社員リストにプルダウンを設定します。プルダウンを設定したいセル(例:B1セル)、データタブ、「データの入力規則」の順に選択します。

「データの入力規則」ダイアログボックスが表示されます。「入力値の種類」でリストを選択し、「元の値」の↑ボタンを押します。

今回は社員リストのそれぞれの項目ごとに並べ替えをしたいので、表の見出し(例:B4セルからG4セル)を選択してEnterを押します。

「データの入力規則」ダイアログボックスに戻ります。OKボタンを押します。

B1セルにプルダウンが設定できました。この後の設定をスムーズにするために、プルダウンの右側にある三角ボタンを押して任意の選択肢(例:登録日)を選択しておきましょう。

次に、もう一方のシート(例:表)に移動して表にテーブルを設定します。テーブルにしたい表(例:B3セルからG9セル)、挿入タブ、「テーブル」の順に選択します。

「テーブルの作成」ダイアログボックスが表示されます。「先頭行をテーブルの見出しとして使用する」にチェックマークを入れて、OKボタンを押します。

表をテーブルとして設定できました。この後数式にテーブル名を入力する必要があるため確認しておきましょう。テーブル内の任意のセル(例:G9セル)、テーブル デザインタブの順に選択すると画面左上の赤い矢印で示した部分にテーブル名(例:テーブル1)が表示されるので覚えておきましょう。

次に社員リストのプルダウンで何を選択したか(何を基準に並べ替えるか)を判断するためにI4セルを選択して=MATCH(社員リスト!B1,テーブル1[#見出し],0)と入力しEnterをを押します。この数式は「社員リストのプルダウンで選択した項目が、テーブル1の見出しの中で何列目にあるか」という意味です。数式の詳細は下記「プルダウンでソートするための数式について」セクションを参考にしてください。

これでMATCH関数を使って見出しが何列目かを検索することが出来ました。先ほど社員リストの1列目にある「登録日」をプルダウンで選択したので「1」と表示されています。

社員リストに移動して最初に入力していたデータを削除します。表(例:B5セルからG10セル)を選択してDeleteを押します。

値が削除できました。次にSORT関数を入力します。表の一番左上のセル(例:B5セル)を選択して=SORT(テーブル1,表!I4,1)と入力します。この数式は「テーブル1を、プルダウンで選択した項目を基準に昇順で並べる」という意味です。数式の詳細は下記「プルダウンでソートするための数式について」セクションを参考にしてください。

すると、テーブルの項目が表示されます。これで、B1セルのプルダウンで選択した項目を基準に表を並べ替える設定ができました。

試しにB1セルのプルダウンの右端にある三角ボタンを押して別の選択肢(例:年齢)を選んでみます。

すると表が年齢を基準に昇順で並び替えられました。これでソートできるプルダウンを設定することができました。
プルダウンでソートするための数式について
上記「エクセルでソートするためのプルダウンを作る方法」セクションでご紹介した表の作成方法ではMATCH関数とSORT関数の数式を使用しています。
以下でそれぞれの数式の詳細をご説明しますので、数式をアレンジする際の参考にしてください。

上の画像はMATCH関数の数式です。数式は右の表シートのI4セルに入力しています。
MATCH関数の書式は=MATCH(検査値,検査範囲,[称号の種類])で、検査値が検査範囲の中で何列目にあるか、もしくは何行目にあるかを検索する関数です。
上の画像の①が検査値、②が検査範囲、③が照合の種類になっています。
①で社員リストのプルダウンが設定されたセル(例:B1セル)を指定し、その項目が②のテーブル1の見出し内で何列目にあるかを検索しています。
③は照合の種類で、「完全一致」で検索したいので0を入力しています。

上の画像はSORT関数の数式です。数式は左の社員リストシートのB5セルに入力しています。
SORT関数の書式は=SORT(配列,[並べ替えインデックス],[並べ替え順序],[並べ替え基準])で、配列内の項目を任意の基準で並べ替えることができる関数です。
上の画像の①が配列、②が並べ替えインデックス、③が並べ替え順序になっています。
①でテーブル1全体を指定し、②にMATCH関数で表示した列数に該当する「見出し」を基準に並べ替えた表を、社員リストシートに表示するように設定しています。
③では並び替えの順序を昇順(小さい順)にするか降順(大きい順)にするかを選択できます。「1」で昇順、「-1」で降順が設定できます。