スプレッドシートのプルダウンの作り方|連動プルダウンまで

執筆者:

カテゴリ:

スプレッドシートのプルダウンの作り方のイメージ

機能

スプレッドシートのプルダウンの作り方

Excel関数辞典

プルダウン(ドロップダウンリスト)は、選択肢から選ばせて入力させる機能です。

見た目の問題ではありません。表記ゆれを防ぐ最も確実な方法です。「東京」「東京都」「トウキョウ」が混在すると、SUMIF も COUNTIF も正しく動かなくなります。入力時に弾くのが最も安上がりです。

スプレッドシートのプルダウンの作り方の記事構成図
スプレッドシートのプルダウンの作り方:この記事で扱う内容
このページの中身(22項目)
  1. 作り方(2通り)
  2. 選択肢が増えても直さない作り方
  3. 「無効なデータ」の扱い
  4. 連動プルダウンの作り方
  5. 選択肢によって色を変える
  6. チェックボックスとの使い分け
  7. 集計との組み合わせ
  8. よくある問題
  9. Excelとの違い
  10. 選択肢をどこに置くかで運用が変わる
  11. 二段階で連動させる
  12. 入力を制限するという発想
  13. 選択肢が多すぎるとき
  14. 「機能」の関数を全体から見る
  15. 数式を書く前の手順
  16. どの関数でも共通する確認
  17. 引き継ぐときに残すこと
  18. このサイトの収録状況
  19. よくある質問
  20. まとめ
  21. 関連ページ
  22. プルダウンがうまく動かないとき

作り方(2通り)

「データ → データの入力規則」を開き、条件で「プルダウン」を選びます。

方法1:選択肢を直接入力する

選択肢をその場で打ち込みます。

未処理, 処理中, 完了

手軽ですが、選択肢を変えるたびに設定を開く必要があります。

方法2:別シートのリストを参照する(推奨)

「プルダウン(範囲内)」を選び、リストの範囲を指定します。

=マスタ!A2:A100

リストに追加するだけで選択肢が増えます。 設定画面を開く必要がありません。

複数人で使うファイルや、選択肢が増減するものは必ずこちらにしてください。

選択肢が増えても直さない作り方

範囲を A2:A100 のように広めに取ると、空欄も選択肢として並んでしまう環境があります。

これを避けるには、FILTER で空を除いた作業列を作り、そこを参照します。

マスタ!B2:  =FILTER(A2:A100, A2:A100<>"")
入力規則:    =マスタ!B2:B100

リストに追記すれば自動で反映され、空欄も出ません。

重複を除きたいなら UNIQUE を重ねます。

=UNIQUE(FILTER(A2:A100, A2:A100<>""))
スプレッドシートのプルダウンの作り方の要点図
スプレッドシートのプルダウンの作り方

「無効なデータ」の扱い

入力規則には2つのモードがあります。

設定動き
警告を表示リスト外も入力できる(赤い印が付く)
入力を拒否リスト外は入力できない

表記ゆれを防ぐのが目的なら「入力を拒否」にしてください。 警告だけだと、無視して入力されます。

ただし、既にデータが入っている列に後から設定しても、既存の値は変わりません。 赤い印が付くだけです。設定前のデータは別途整える必要があります。

連動プルダウンの作り方

「大分類を選ぶと、小分類の選択肢が変わる」という仕組みです。INDIRECT を使います。

手順

1. 大分類のリストを作る

マスタシートのA列に「果物」「野菜」と並べます。

2. 小分類ごとに名前付き範囲を作る

  • 果物のリスト(りんご、みかん…)を選択 → 「データ → 名前付き範囲」→ 名前を 果物
  • 野菜のリスト(にんじん、キャベツ…)を選択 → 名前を 野菜

名前付き範囲の名前と、大分類の値を完全に一致させるのが必須です。

3. 大分類のセルにプルダウンを設定

範囲はマスタのA列。

4. 小分類のセルの入力規則をカスタム数式にする

=INDIRECT($A2)

A2で「果物」を選ぶと、果物 という名前付き範囲がリストになります。

注意点

  • 名前付き範囲にスペースや記号は使えません。 大分類の値も揃えてください
  • 大分類を変更しても、小分類の値は自動で消えません。 手動でクリアするか、条件付き書式で不整合を目立たせてください
  • INDIRECT は揮発性関数なので、数百行に置くと重くなります

行数が多い場合は、連動プルダウンを諦めて単一のリストに「果物:りんご」のような形で並べるほうが軽くて確実なことがあります。

選択肢によって色を変える

プルダウン自体に色を設定できます(新しいUIでは入力規則の画面から直接指定できます)。

行全体に色を付けたいなら、条件付き書式を使ってください。

=$D2 = "完了"

列だけを $ で固定するのがポイントです。範囲を A2:F1000 にすれば、D列が「完了」の行全体に色が付きます。

ステータスごとに色を分けるなら、条件付き書式のルールを複数追加します。上から順に評価されるので、優先したいものを上に置いてください。

チェックボックスとの使い分け

状況使うもの
選択肢が3つ以上プルダウン
ON / OFF の2択チェックボックス
集計したいどちらでも(チェックボックスは TRUE/FALSE で数えやすい)

集計との組み合わせ

プルダウンで入力を統一すると、集計が確実になります。

=COUNTIF(D:D, "未処理")
=SUMIFS(C:C, D:D, "完了")

ステータスごとの件数を一度に出すなら QUERY が便利です。

=QUERY(A:D, "select D, count(A) where D <> '' group by D", 1)

選択肢が増えても数式を直す必要がありません。

よくある問題

プルダウンが表示されない

  • セルの入力規則が設定されていない
  • 「セル内にドロップダウンリストを表示」のチェックが外れている(古いUI)

選択肢に空欄が並ぶ

範囲を広く取りすぎています。FILTER で空を除いた作業列を参照してください。

リストを追加したのに反映されない

入力規則の範囲が、追加した行を含んでいません。範囲を広めに取り直すか、FILTER を使った作り方に変えてください。

連動プルダウンが動かない

  • 名前付き範囲の名前と、大分類の値が一致していない
  • 名前にスペースや記号が含まれている
  • カスタム数式の参照が $A2 ではなく $A$2 になっている(行を固定すると全行が同じリストになります)

Excelとの違い

考え方は同じですが、細部が異なります。

Excelスプレッドシート
設定場所データの入力規則データの入力規則
リスト参照名前付き範囲か直接指定範囲を直接指定できる
連動INDIRECT + 名前付き範囲同じ
選択肢の色分け条件付き書式のみ入力規則で直接指定可

Excelでは別シートのリストを参照するのに名前付き範囲が必要でしたが、スプレッドシートは範囲を直接指定できます。設定が簡単なのはスプレッドシートです。


選択肢をどこに置くかで運用が変わる

プルダウンの選択肢は、直接入力する方法と、範囲を参照する方法があります。どちらを選ぶかで、その後の運用が大きく変わります。

直接入力は、設定画面に候補を並べる方法です。手軽ですが、候補を変更するには設定画面を開き直す必要があります。同じ選択肢を複数の列で使っている場合、すべてを直し回ることになります。

範囲を参照する方法は、選択肢の一覧をシート上に置き、その範囲を指定します。候補の追加や変更は、その範囲に行を足すだけで済みます。複数の列で同じ範囲を参照していれば、一箇所を直すだけで全部に反映されます。

実務では、後者を既定にしてください。手軽さの差はわずかですが、保守の差は大きくなります。

選択肢の一覧は、専用のシートを作って置くのが分かりやすくなります。マスタ用のシートを一枚用意し、そこに各種の選択肢をまとめます。使うときは非表示にしておけば、利用者が誤って編集することもありません。

さらに、範囲を固定ではなく可変にしておくと、候補を追加したときに自動で反映されます。重複を除く関数や抽出の関数の結果を参照する形にすれば、実データから選択肢を自動生成することもできます。


二段階で連動させる

大分類を選ぶと、小分類の候補がそれに応じて変わる。この連動プルダウンは、入力の精度を大きく上げます。

作り方の基本は、小分類の一覧を大分類ごとに用意し、それぞれに名前を付けておくことです。そのうえで、小分類のプルダウンの参照先を、大分類のセルの値から名前を組み立てる形で指定します。文字列から参照を作る関数を使います。

実装で注意すべき点がいくつかあります。まず、名前として使える文字に制限があります。空白や記号は使えず、数字から始めることもできません。大分類の名前に空白が含まれるなら、名前を付けるときに置き換える必要があります。

次に、大分類を変更しても、小分類のセルに残っている古い値は消えません。整合しない組み合わせが残ります。条件付き書式で不整合を目立たせるか、定期的に確認する運用を決めてください。

三つ目に、行を挿入すると参照が崩れる場合があります。文字列から参照を作る関数は、行の挿入に追従しません。表の構造を変える予定があるなら、別の方法を検討してください。

三段階以上に増やすことも技術的には可能ですが、設定が複雑になり、保守が難しくなります。二段階までに留めるか、階層をやめて分類の列を増やす設計に変えるほうが実務的です。


入力を制限するという発想

プルダウンの本来の目的は、選ぶのを楽にすることではなく、表記のゆれを防ぐことです。

同じ内容を人が自由に入力すると、必ずゆれます。「東京都」と「東京」、「株式会社」と「(株)」、全角と半角。集計の段階でこれらが別のものとして扱われ、数が合わなくなります。

プルダウンにしておけば、入力される値が確定します。集計は素直に動き、突き合わせも正確になります。

さらに、入力規則には「範囲外の値を拒否する」設定があります。既定では警告が出るだけで入力自体はできてしまうことがあるので、確実に防ぎたいなら拒否に設定してください。

ただし、貼り付けの操作では入力規則が働かないことがあります。大量のデータを貼り付ける運用では、防ぎきれません。この場合は、貼り付け後に不正な値がないかを確認する仕組みを用意してください。条件付き書式で、選択肢に含まれない値に色を付ける方法が使えます。


選択肢が多すぎるとき

候補が数十を超えると、プルダウンは使いにくくなります。目的の項目を探すのに時間がかかるためです。

対処としては、まず階層に分けることを検討してください。大分類で絞れば、小分類の候補は現実的な数に収まります。

それでも多い場合は、プルダウンをやめて、入力補完に頼る方法があります。過去の入力履歴から候補が表示されるので、数文字打てば絞り込めます。ただし表記のゆれは防げません。

もうひとつは、コードで入力させて名称は検索関数で表示する方法です。入力するのは短いコードだけになり、名称は自動で表示されます。コード表を配布する運用が必要になりますが、大量の項目を扱う業務では現実的な選択肢です。

選択肢の並び順も使いやすさに影響します。使用頻度の高いものを上に置くか、五十音順に並べるか。並べ替えの関数で自動的に並べておくこともできます。


「機能」の関数を全体から見る

機能は表そのものの扱いに関わる項目です。同じカテゴリの関数は、つまずく場所も似ています。この記事のほかに4本あります。

記事
スプレッドシートのチェックボックスの
スプレッドシートの使い方
スプレッドシートの共有設定
スプレッドシートの条件付き書式

このカテゴリで共通するつまずき

環境によって使えるものと使えないものがあります。1つで理解した内容は、同じカテゴリの他の関数にもそのまま使えます。

どれを使うかの決め方

共有先が決まっていないなら、対応範囲の広い方法を選んでください。関数の一覧を眺めて選ぼうとすると、どれも当てはまるように見えて決まりません。

迷ったときは

→ 全関数の一覧 に目的別の索引があります。


数式を書く前の手順

書き始める前に決めておくことがあります。ここが曖昧なまま書くと、途中で行き詰まります。

1. 出したい結果を一文で書く

「何を、どの条件で、どんな形で出したいか」。この一文が書ければ、関数はほぼ決まります。書けないなら、まだ要件が固まっていません。

2. 元データの型を確認する

環境によって使えるものと使えないものがあります。=ISNUMBER(A2) で数値かどうかを確認できます。見た目が同じでも、数値と文字列は別物です。

3. 空欄と0の扱いを決める

未入力なのか、実績が0なのか。表の意味が変わります。どちらとして扱うかを決めてから書いてください。

4. 条件の数を数える

共有先が決まっていないなら、対応範囲の広い方法を選んでください。将来条件が増える可能性があるなら、最初から複数条件に対応する形にしてください。

5. 共有先の環境を確認する

新しい関数は、古い環境で開くとエラーになります。社外に渡すファイルでは、この一点で選択肢が変わります。

6. 1行だけ書いて確認する

全行にコピーする前に、1行分の結果が正しいかを見てください。間違ったまま広げると、直す手間が増えます。


どの関数でも共通する確認

関数を問わず、結果がずれる原因は限られています。この5つを確認すれば、大半が解決します。

参照を固定したか

下方向にコピーする数式では、動いてはいけない参照を固定します。上の数行だけ見て判断しないでください。ずれは下のほうで表面化します。

範囲の行数が揃っているか

複数の範囲を渡す関数では、行数がずれると結果が狂います。エラーにならず値が返るため、気づきにくい種類の間違いです。

型が揃っているか

=ISNUMBER(A2)

数値として入っているかを判定します。システムから書き出したデータでは、これが原因のことが多くあります。

前後に空白が入っていないか

=LEN(A2)&" / "&LEN(TRIM(A2))

数が違えば、余分な空白が入っています。見た目では判別できません。

別の方法で検算したか

同じ数字を別の関数でも出して、突き合わせてください。1つの結果だけを見ても、正しいかどうかは判断できません。

最終行まで確認したか

一番下までスクロールして、結果を見てください。途中から値が変わっていないかを確認します。


引き継ぐときに残すこと

数式は動いていても、意図は残りません。渡す前に、次の点をシート内にメモしてください。3分で終わります。

何を出している数式か

一行で構いません。読めば分かると思っても、数か月後の自分には分かりません。

どの表を参照しているか

参照先のシート名と、更新の担当。別ファイルなら、その場所も書いてください。

該当しないときの扱い

空欄にしているのか、文言を出しているのか、エラーのまま残しているのか。書いていないと、受け取った側は空欄をデータなしと読みます。

触ってはいけない場所

列を挿入すると壊れる数式がある場合、必ず書き残してください。この一行があるだけで、引き継ぎ後の事故が大きく減ります。

使った関数の対応環境

新しい関数を使っている場合、古い環境では開けません。共有の範囲が広がる可能性があるなら、明記してください。

確定した期間は値にする

締めた月の集計は、値貼り付けにしてください。参照元を消しても壊れなくなり、ファイルも軽くなります。

このサイトの収録状況

現在、201本の記事をカテゴリ別に整理しています。関数名が分からない場合は、カテゴリから探してください。

カテゴリ記事数
目的別51本
集計47本
文字列31本
日付19本
検索・参照15本
条件15本
機能12本 ←この記事
配列・抽出10本
関数一覧1本

探し方の順番

関数名が分かっているなら検索窓から。やりたいことだけ決まっているなら「目的別」から。近い関数を比べたいなら、同じカテゴリの一覧から入ってください。

記事の構成

どの記事も、書式・実例・つまずきやすいところ・似た関数との使い分けを同じ順番で並べています。1本読めば、他の記事も同じ場所を探せます。


よくある質問

Q. 候補が表示されません

参照している範囲が空になっているか、別のシートの範囲を正しく指定できていません。範囲を確認してください。

Q. 候補を追加しても反映されません

参照範囲が固定されている可能性があります。範囲を広げるか、可変になる指定に変えてください。

Q. 範囲外の値も入力できてしまいます

入力規則の設定で、拒否ではなく警告になっています。設定を変えてください。

Q. 貼り付けたら規則が無視されました

貼り付けでは働かないことがあります。条件付き書式で不正な値を目立たせる方法を併用してください。

Q. 連動プルダウンで候補が出ません

名前の付け方に問題がある可能性があります。空白や記号が含まれていないか確認してください。

Q. 大分類を変えたら組み合わせが不整合になります

小分類の値は自動では消えません。条件付き書式で不整合を目立たせる運用にしてください。

Q. 選択肢を実データから自動生成できますか

重複を除く関数の結果を参照範囲にすれば可能です。データが増えれば候補も増えます。

Q. 複数選択できますか

標準では一つだけです。複数を扱いたい場合は、チェックボックスを列で並べる方法があります。→ チェックボックスの使い方


まとめ

  • プルダウンは見た目ではなく、表記ゆれを防ぐための機能
  • 別シートのリストを参照する作り方にすると、追加が楽
  • 空欄が並ぶなら FILTER で作業列を作る
  • 「入力を拒否」に設定しないと弾けない
  • 連動プルダウンは INDIRECT +名前付き範囲。名前と値を完全一致させる
  • 入力が統一されると、COUNTIF や QUERY が確実に動く

関連ページ

プルダウンがうまく動かないとき

選択肢に空欄が混ざる

選択肢の範囲を H2:H100 のように広く取ると、 まだ埋めていない行が空の選択肢として並びます。 FILTER で空を除いた一覧を別の場所に作り、 そこを参照させてください。

=FILTER(H2:H100,H2:H100<>"")

他のファイルの範囲を選択肢にしたい

入力規則の範囲に、他のスプレッドシートは直接指定できません。 IMPORTRANGE で一度このファイルに取り込み、 その範囲を指定します。取り込み先のシートは非表示にしておけば邪魔になりません。

選択肢を変えたら、既存の入力が「無効」になった

入力規則は、後から選択肢を変えても既存の値を書き換えません。 赤い三角が出ている行は、古い選択肢のまま残っています。 条件付き書式に =COUNTIF($H$2:$H$100,$B2)=0 と書いておくと、 選択肢に無い値が入っている行に色が付きます。

連動プルダウンの2段目が空になる

1段目の値と、2段目の選択肢を引くときのキーが一致していないときに起きます。 #N/Aエラーの直し方と同じ原因で、 末尾の空白や全角半角の違いがほとんどです。 =COUNTIF(キーの範囲,1段目のセル) が0になっていないか確かめてください。