エクセルでデータを入力する際、プルダウンリストを使って入力内容を制限・誘導する仕組みは、入力ミスの防止や作業効率の向上に非常に効果的です。
さらに一歩進んで「1つ目のプルダウンで選んだ値によって、2つ目のプルダウンの選択肢が変わる」という条件分岐の仕組みを作ることができれば、より実用的なシートが完成します。
本記事では、エクセルのプルダウンで条件分岐・入力規則の条件設定をする方法を、基本的なプルダウンの作成から連動プルダウン・INDIRECT関数の活用まで丁寧に解説します。
入力規則の設定方法や条件によって選択肢を切り替えるテクニックを身につけることで、実務で使えるシートづくりが大きくレベルアップするでしょう。
エクセルのプルダウン(入力規則)の基本的な作成方法
まず前提として、エクセルのプルダウンリストは「データの入力規則」機能で作成します。
プルダウンを設定したいセルを選択した状態で、リボンの「データ」タブから「データの入力規則」をクリックして設定画面を開きます。
以下のサンプルデータを使いながら操作を確認していきましょう。
| 行 | A列:カテゴリ | B列:商品名 | C列:担当者 | D列:売上数 |
|---|---|---|---|---|
| 1 | カテゴリ | 商品名 | 担当者 | 売上数 |
| 2 | 和菓子 | 桜餅 | 田中 | 120 |
| 3 | 和菓子 | 柏餅 | 鈴木 | 85 |
| 4 | 洋菓子 | マシュマロ | 田中 | 200 |
| 5 | 洋菓子 | チョコ | 佐藤 | 150 |
| 6 | 魚介 | マグロ | 佐藤 | 310 |
| 7 | 魚介 | カツオ | 鈴木 | 270 |
| 8 | 魚介 | ハラス | 田中 | 180 |
| 9 | 工具 | ボルト | 佐藤 | 400 |
| 10 | 工具 | ネジ | 鈴木 | 350 |
1行目がヘッダー行で、A列にカテゴリ、B列に商品名、C列に担当者、D列に売上数が入力されています。
このデータをもとにプルダウンリストの作成と条件分岐の設定を進めていきます。
プルダウンリストの作成手順
プルダウンを設定したいセル(例:F2セル)を選択し、「データ」タブの「データの入力規則」をクリックします。
「設定」タブの「入力値の種類」から「リスト」を選択すると、「元の値」の入力欄が表示されます。
元の値には選択肢をカンマ区切りで直接入力する方法と、別シートやセル範囲を参照する方法の2通りがあります。
カンマ区切りで直接入力する場合は「和菓子,洋菓子,魚介,工具」のように入力してOKをクリックします。
セル範囲を参照する場合は元の値欄に「=$A$2:$A$5」のように範囲を入力(またはセルをドラッグで選択)します。
設定後、F2セルをクリックすると▼ボタンが表示され、リストから選択できる状態になります。
プルダウンの選択肢をセル範囲で管理するメリット
選択肢を別のセル範囲で管理する方法は、選択肢の追加・変更がリスト側のセルを編集するだけで反映されるという大きなメリットがあります。
直接入力方式では選択肢を変更するたびに入力規則の設定画面を開き直す必要がありますが、セル範囲参照方式ならリスト管理用のシートを更新するだけで済みます。
運用コストを考えると、選択肢が変わる可能性があるものはセル範囲参照方式を採用するのが実践的です。
【操作のポイント】プルダウンリストは「データ」タブ→「データの入力規則」→入力値の種類「リスト」から作成します。選択肢の管理のしやすさを考えると、セル範囲参照方式を採用するのがおすすめです。
INDIRECT関数を使って条件分岐するプルダウンを作成する方法
エクセルのプルダウンで条件分岐を実現する代表的な方法が、名前の定義とINDIRECT関数を組み合わせる方法です。
1つ目のプルダウン(カテゴリ選択)の値に応じて、2つ目のプルダウン(商品名選択)の選択肢が自動的に変わる仕組みを作ります。
名前の定義でカテゴリ別リストを登録する
まず連動させる選択肢のリストを別シートや別の場所に用意します。
今回は以下のようにH列・I列・J列・K列にカテゴリ別の商品リストを作成します。
| H列:和菓子 | I列:洋菓子 | J列:魚介 | K列:工具 |
|---|---|---|---|
| 桜餅 | マシュマロ | マグロ | ボルト |
| 柏餅 | チョコ | カツオ | ネジ |
| ハラス |
次にH列の「桜餅・柏餅」の範囲(H2:H3)を選択し、「数式」タブの「名前の定義」をクリックして名前に「和菓子」と入力してOKをクリックします。
同様にI列(I2:I3)に「洋菓子」、J列(J2:J4)に「魚介」、K列(K2:K3)に「工具」という名前を定義します。
この名前の定義とカテゴリ名を一致させることが、INDIRECT関数による連動の核心になります。
INDIRECT関数を使って2つ目のプルダウンを連動させる
名前の定義が完了したら、2つ目のプルダウンを設定するセル(例:G2セル)を選択して「データの入力規則」を開きます。
入力値の種類を「リスト」にし、元の値に以下の数式を入力します。
【INDIRECT関数を使った連動プルダウンの設定】
=INDIRECT(F2)
※F2セルが1つ目のプルダウン(カテゴリ選択)のセル
INDIRECT関数は文字列をセル参照や名前として解釈して返す関数です。
F2セルに「和菓子」と入力されていれば、INDIRECT(“和菓子”)が「和菓子」という名前で定義された範囲(桜餅・柏餅)を参照し、G2セルのプルダウンに桜餅・柏餅の選択肢が表示されます。
F2セルで「魚介」を選ぶとG2のプルダウンがマグロ・カツオ・ハラスに切り替わるという条件分岐の連動プルダウンが完成します。
名前の定義でスペースや特殊文字に注意する
名前の定義で登録する名前とプルダウンの選択肢の文字列は完全に一致している必要があります。
全角・半角の違いやスペースの有無が1文字でも異なると、INDIRECT関数が正しく参照できずエラーになります。
名前の定義に使える文字にも制限があり、スペース・ハイフン・一部の記号は使用できません。
スペースが必要な場合はアンダースコア(_)で代替するか、選択肢の表現を変更するのが安全です。
【操作のポイント】INDIRECT関数を使った連動プルダウンでは「名前の定義の名前」と「1つ目のプルダウンの選択肢の文字列」を完全一致させることが最重要です。全角・半角・スペースの違いに注意しましょう。
入力規則に数式を使って条件付きプルダウンを設定する方法
エクセルの入力規則では、リスト方式だけでなく数式を使って入力できる値の条件を設定することもできます。
たとえば「D列の売上数は必ず0以上の整数のみ入力可能」というルールや、「C列の担当者名は必ず所定のリストにある名前のみ入力可能」という制約を数式で設定できます。
数値の範囲条件を入力規則で設定する
売上数(D列)に0以上の整数のみを許可する設定を行う場合は、D2セルを選択して「データの入力規則」を開き、入力値の種類を「整数」、データを「次の値以上」、最小値を「0」と設定します。
これによりマイナス値や小数・文字列の入力が拒否されます。
入力規則はセル範囲にまとめて設定できるため、D2:D100のように複数行を一括で設定しておくと、データ入力時のミスを未然に防げます。
カスタム数式で条件付き入力規則を設定する
より柔軟な条件設定には、入力値の種類で「ユーザー設定」を選んで数式を入力する方法が使えます。
たとえば「C列の担当者が田中・鈴木・佐藤のいずれかであること」を確認する入力規則を設定する場合は以下のようになります。
【ユーザー設定(カスタム数式)の例】
=COUNTIF({“田中”,”鈴木”,”佐藤”},C2)=1
この数式は入力されたC2の値が定義リストの中に1件存在する場合にTRUEを返し、入力を許可します。
リストにない値を入力しようとするとエラーメッセージが表示され、入力がブロックされます。
入力規則のエラーメッセージをカスタマイズする
入力規則の設定画面の「エラーメッセージ」タブでは、不正な値が入力されたときに表示するメッセージをカスタマイズできます。
スタイルを「停止」にすると入力が完全にブロックされ、「警告」にすると確認ダイアログが表示されますが入力は続行可能です。
「情報」にするとメッセージが表示されるだけで入力はそのまま受け付けられます。
タイトルとエラーメッセージの本文を業務に合わせた内容に設定しておくと、入力担当者が何を修正すべきか即座に理解できるため、運用品質が大きく向上します。
【操作のポイント】入力規則のユーザー設定(カスタム数式)を使うと、COUNTIF関数などを組み合わせた柔軟な入力チェックが実現できます。エラーメッセージタブで分かりやすいメッセージを設定しておくと入力担当者の混乱を防げます。
プルダウンの条件分岐を3階層にする方法
2段階の連動プルダウンに慣れてきたら、3階層の連動プルダウンにも挑戦できます。
たとえば「1段目:大カテゴリ(菓子・食材・工具)→ 2段目:中カテゴリ(和菓子・洋菓子など)→ 3段目:商品名」という3階層構造です。
3階層連動プルダウンの設計方針
基本的な考え方は2段階と同じで、各階層の選択肢を名前の定義で登録し、下の階層のINDIRECT関数が上の階層のセルを参照するという構造を繰り返します。
1段目のプルダウン選択に対応する名前を定義し、2段目のINDIRECT関数が1段目のセルを参照します。
2段目の選択肢それぞれに対応する名前を定義し、3段目のINDIRECT関数が2段目のセルを参照します。
階層が増えるほど名前の定義の数が増えますが、INDIRECT関数の数式自体は各階層とも同じ形のため、一度仕組みを理解すれば拡張は難しくありません。
3階層連動プルダウンを管理用シートで整理する
3階層ともなると選択肢リストが多くなるため、「リスト管理」専用シートを別に作成してまとめて管理するのがおすすめです。
入力用シートと管理シートを分けておくことで、選択肢の追加・変更がしやすくなり、入力用シートの見た目もすっきり保てます。
管理シートで選択肢リストを更新すると、名前の定義経由で入力用シートのプルダウンに自動的に反映されます。
【操作のポイント】3階層の連動プルダウンは、名前の定義とINDIRECT関数の組み合わせを階層ごとに繰り返す構造です。リスト管理用シートを別に用意することで、選択肢の更新・メンテナンスが格段に楽になります。
プルダウンの入力規則に関するよくある疑問と対処法
プルダウンや入力規則を設定していると、いくつかのつまずきポイントが発生することがあります。
代表的な疑問とその対処法を確認しておきましょう。
プルダウンが表示されない・▼ボタンが出ない場合
プルダウンを設定したにもかかわらず▼ボタンが表示されない場合、まずセルが結合されていないかを確認します。
結合セルに入力規則を設定した場合、▼ボタンが表示されないケースがあります。
また「ドロップダウンリストから選択する」チェックボックスが入力規則の設定画面でオフになっていないかも確認しましょう。
INDIRECT関数でエラーが出る場合
INDIRECT関数を使った連動プルダウンで#REF!エラーが出る主な原因は、名前の定義と1つ目のプルダウン選択肢の文字列が不一致であることです。
名前の定義マネージャー(「数式」タブ→「名前の管理」)で登録済みの名前を確認し、1つ目のプルダウンの選択肢と完全一致しているかチェックします。
1つ目のプルダウンで何も選択されていない(空白)状態でも#REF!が発生するため、IFERRORで囲むか、1つ目のプルダウンに初期値を設定しておく方法も有効です。
入力規則をコピーする方法
設定した入力規則を別のセルにコピーするには、「形式を選択して貼り付け」→「入力規則」を使います。
通常のコピー&ペーストでも入力規則はコピーされますが、値や書式を上書きしたくない場合は形式を選択して貼り付けで「入力規則」だけを選ぶのが安全です。
入力規則のみを削除したい場合は「データの入力規則」ダイアログで「すべてクリア」ボタンをクリックします。
【操作のポイント】INDIRECT関数のエラーは名前の定義と選択肢の不一致が原因であることがほとんどです。「数式」タブの「名前の管理」から登録名を確認し、プルダウン選択肢と完全一致しているか見直しましょう。
まとめ:エクセルのプルダウン条件分岐・入力規則の条件設定を使いこなす
本記事では、エクセルのプルダウンで条件分岐・入力規則の条件設定をする方法について、基本から応用まで幅広く解説しました。
プルダウンリストの基本的な作成は「データ」タブのデータの入力規則からリストを設定するだけで完了します。
1つ目のプルダウンに連動して2つ目の選択肢が変わる条件分岐は、名前の定義とINDIRECT関数の組み合わせで実現できます。
入力規則に数式を使ったカスタム条件設定を活用することで、入力ミスを未然に防ぐ堅牢なシートが作成できます。
3階層の連動プルダウンやエラーメッセージのカスタマイズまで活用すれば、実務で即戦力になる入力フォームが完成します。
エクセルのプルダウン条件分岐・入力規則の条件設定をフル活用して、データ管理の精度と効率をさらに高めていきましょう。