さて、今回はスプレッドシート自体の機能の紹介として、入力規則でプルダウン(プルダウンリスト)の紹介をしていきたいなと思います。
プルダウンは選択肢が決まっている場合に、入力パターンを統一することができるので、文字揺れ(半角全角・送り仮名・入力ミスetc)が起きずデータの取り扱いが楽になります。
それでは、プルダウンの基本的な使い方から解説していきます。
プルダウンの使い方 基本的な使い方
プルダウン出来上がりイメージ
プルダウンを作ると以下の画像のように、セル内に下三角が出るようになります。カラムD入力欄参照。

そして、下三角が出ているセルを選択もしくは三角をクリックすると、以下のように指定したプルダウン要素が表示されます。

プルダウンの作り方
それでは、プルダウンの作り方についてみていきたいと思います。
基本的なプルダウンの作成のための流れは以下になります。
①セルの選択(入力規則画面でも変更可能)→②データタブ→③データの入力規則を選択となります。

データの入力規則をクリックすると以下のような画面が現れてきます。

データの入力規則の設定内容を確認してみましょう。
要素 | 規定内容 |
セル範囲 | 対象とするセルを選択します。ここでは、単一セル(A1など)のみではなく、複数セル(A1:A10)なども設定可能です |
条件 | プルダウンリストに表示させる要素の指定ができます。後ほど別途詳細を説明します。 セルにプルダウンリストを表示のチェックボックスにチェックを入れておく(デフォルトで入っています)と、画面でプルダウン要素が表示されます。 |
無効なデータの場合 | 無効なデータ(条件で設定した要素以外のデータが入力された場合)に対する対応方法を設定できます。 【警告を表示】の場合、データの入力はできますが警告文書が表示されます。 他方で、【入力を拒否】にしておくと入力自体が成功しません。 |
デザイン | 検証ヘルプテキストを表示チェックボックスにチェックを入れると、セルにカーソルを合わせたときに以下のようなヘルプテキストが表示されます |
デザインのチェックボックスを有効にした場合、以下の画像のようにヘルプテキストがセルにカーソルを合わせた際に表示されます。

入力規則のしたに表示されるテキスト情報はチェックボックスにチェックを入れたときに自分で入力します。

データの入力規則〜条件で設定できる内容〜
条件で設定できる要素の一覧は以下になります。まずは画面をご確認ください。

要素 | 設定内容 |
リストを範囲で指定 | スプレッドシートないに作成した入力内容を規定したリストをセル範囲で指定 |
リストを直接指定 | 直接対象リストを入力 |
数字 | 数値による入力を受入。数値は範囲内・範囲外・大小・イコールなどで条件設定可能 |
テキスト | テキストによる入力。テキストの条件としては、指定の文字を含む・含まない・一致、及び有効なメール、有効なURLが設定可能 |
日付 | 日付による入力。指定日付以前・以降などの設定可能 |
カスタム数式 | 数式の指定 |
チェックボックス | チェックボックスを作成 |
プルダウン への要素追加
要素を追加したい場合、基本的にセル範囲でリストを指定している場合、リストに要素を入力して、範囲を追加してあげれば可能です。
【元の入力規則】

【要素の追加】

【セル範囲の変更】

【変更後】

プルダウンの連動
さて、プルダウンを作っていくと指定した一つ目の要素に連動して2つ目の要素を選択できるようにしたいケースによくあたります。いわゆる条件分岐みたいなやり方でプルダウンを作っていきましょう。この部分はGASでも作成可能ですが、今回は関数だけで作成しています。
一つ目の要素を指定する(カラムB)と隣の商品セル(カラムC)の入力規則内容が自動で変化していくようになります。
プルダウン 連動の作り方
さて、それでは連動させるプルダウンの作り方です。シンプルに考えれば、カラムCに作成されるプルダウンの要素がカラムBの入力内容に応じて変化するということですので、入力内容マスターのシートを作ってそこに固定値と入力内容に応じて変更させる要素を固定値から自動選択されるようになっていればOKです。

process dataの範囲には以下の計算式が入っています。
カテゴリが表示されるセル:入力シートのカテゴリ入力セル
商品詳細用のセル:=iferror(offset($A$1,match($A12,$A$2:$A$5,0),COLUMN(A2)),””) もしくは =iferror(vlookup($A12,$A$2:$D$4,2))のような計算式
商品詳細のデータを入力されたカテゴリデータに合わせて計算式で固定値の中から取得してこればOKです。
そして、入力規則は各セルに以下のようにそれぞれの行のデータ(固定値ではなくて計算結果の方のデータ)を取得するように設定していきます。

プルダウンの連動はGASでも作れる
プルダウンの連動要素はGASでも作れます。GASにはonEditトリガーと言って、シートが変更されたときに自動実行されるトリガーを設定可能ですので、そのトリガーを利用すれば対応可能です。暇なときに作りますが、難点はあくまでGASでその都度作成するので少し動きがもっさりします。
ここまで書いてなんですが、Formの方がいいですよ
さて、データの入力規則関係の記事をここまで書いてきましたが、入力制限をかけるのであればgoogle formを連動させて入力フォームからのデータ受付にした方が個人的にはいいと思います。
入力フォームとスプレッドシートは連動させられますし、フォームのmultiple choiceなどを利用すれば、入力内容の規定(選択肢化)も可能です。
あくまで今回はフォームを使わない前提で説明してきましたが、もともとスプレッドシートは演算用のシートであって入力受付はメインではありません。欲しい機能をメインのユースケースにおいているツールを正しく使うことが実は一番の効率化なのかもしれませんし。
まとめ
さて、プルダウン要素の作成方法をみてきました。
データの揺れって実はスプレッドシートみたいなDBライクに使いたいものにおいては、天敵です。もちろんセル結合みたいに正規化を外すユーザ側のやり方も天敵ですが。。
できるだけ綺麗なデータ作成を心がけていくと、データの活用に生きてきますよ。