見出し画像

[EXCEL] リスト入力③ データ追加を楽にする基本テクニック ~入力表作成レッスン~

目次>様式/入力表の作成>プルダウンリスト
▶関連記事:プルダウンリスト

前記事
[EXCEL] プルダウンリストによる入力② 基本編 リストにないデータも入力可能にする ~入力表作成レッスン~


プルダウンリストの基本は、
① セルを選択
⓶ Alt ⇒ A ⇒ V ⇒ V で「データの入力規則」を開く
③「入力の値の種類」で「リスト」を選択
④「元の値」にリストの元となるセルを選択
です。

この場合、「④「元の値」には、リストの元になる部分「のみ」範囲指定するのが基本です。

しかし、そうすると、新たな選択肢を追加したい場合、問題が起きます。
上の例で「あ課」から「え課」を指定した場合、
「え課」の下に新たに「か課」を追加しても、リストには反映されません。
「元の値」の範囲に含まれていないからです。

「か課」をリストに入れるためには、上の①~④をやり直す必要があります。これは面倒です。

これは横でも同じ。
集計表の項目をリストにしている入力表(下図)があるとして(本来は入力表と集計表は別シートにすべき)、

「不明」という項目を作っても、範囲指定し直さないと、リストには現れません。

このようなことがあるので、プルダウンリスによる入力を設定する際は、あらかじめ、項目を増やせるようにしておくと楽です。

リストの項目を増やせるようにしておく方法

1 空欄も含めて範囲指定する(推奨)

「元の値」で範囲指定する際、項目が増えることを予測して、空欄まで含めて範囲指定しておくと、項目を入力するだけでプルダウンリストに表示されます。

上のように空欄を4つ含んで範囲していしておくと・・・

空欄にデータを入れるだけで、プルダウンリストに表示されます。
ただし、上の図の「こ課」は「元の値」の範囲に入っていないので、リストには表示されません。
このため、どの程度の項目が増えるか、最初に想定しておくことが必要です(想定以上だったら範囲を修正します)。

*2026/2/11追記
項目名の下に空欄セルを設けておくと便利です。
詳細:プルダウンリスト(シンプル基本版)~とりあえずこれだけでOK ~「名前の定義」もINDIRECT関数も不要で項目追加可能 公務員に必要なエクセルのスキル

2 列全体を範囲指定する(推奨)*非推奨から変更

項目がどれだけ増えるか分からない場合、列全体を範囲指定しておく、という方法もあります。
「元の値」の欄に、例えば「E:E」と入れると(実際は、列番号のEのところをクリックするだけ)・・・

これで、リストを表示すると・・・

何も表示されません。
これは、列全体を範囲指定しているため、列の真ん中あたり(=何もデータが入っていないところ)が表示されているためです。
2026/2/11修正
これは、プルダウンリストが空欄のため、リスト一覧にある空欄を表示してしまうためです。

項目を表示させるには、上の方を選択しなければなりません。

これは却って面倒です。
知らない人が見たら戸惑います。
項目がどれだけ増えてもリストには表示されますが、上の問題から、お勧めしません。

*2026/2/11追記
項目名の下に空欄セルを設けておくと、列全体を範囲指定しても、一番上(項目の下)が選択されます。
詳細:プルダウンリスト(シンプル基本版)~とりあえずこれだけでOK ~「名前の定義」もINDIRECT関数も不要で項目追加可能 公務員に必要なエクセルのスキル

3 テーブル化と名前の定義(正攻法だが非推奨)

項目が増える場合に対応としての「正攻法」の一つがテーブル化です。
「正攻法」ですが、個人的には非推奨です。
*以下の例では実務を想定して「リスト」と「入力表」を別シートにしています。


①リストにしたい範囲を選択(Ctrl+A)
⓶ Ctrl+T で「テーブルの作成」が開く
③「先頭行をテーブルの見出しとして使用する」に☑を入れる

④「OK」
⑤ Alt ⇒ M(数式) ⇒ M(名前の定義)⇒ D(名前の定義)

又は、目(メニューキー)押下(マウスを握っているのなら、右クリック)から「名前の定義」を選択

⑥「名前」を入れる。
項目のままでもいいが、「リスト」であることを分かるように「所属リスト」とつけておく。

⑦「OK」

⑧ リストを表示したいセルを選択
⑨ Alt ⇒ A ⇒ V ⇒ V で「データの入力規則」を開く
⑩「入力の値の種類」で「リスト」を選択
⑪「元の値」に⑥で設定した名前(ここでは「所属リスト」)を入れる。
*「名前」の前に「=」を付けることを忘れない!

所属リスト の前に = を付ける。

⑫ 入力したいセルをクリック(又は Alt+↓)すると、リストが出る。

⑬ リストに項目を増やす(例「か課」「き課」「く課」「け課」「こ課」)

⑭「入力表」の入力欄をクリックすると項目欄が増えている。
(項目数が多い場合は下にスクロールが必要)

この方法は「正攻法」といえます。でも先述のとおり、私としては「非推奨」。なぜなら、面倒だから。
私がテーブル化や名前の定義を忌避しているというのがありますが(引き継ぎ等では却ってわかりづらくなりそうなので)、項目数がそんなに増えないなら、1の方法で十分だと思います。

おまけ

正直、このあたりは私の弱い部分です。
Copilotに聞いたら
=INDIRECT("テーブル名[名前]")
という方法も示されましたが、ここまでしなくていいかと思います。


4 OFFSET関数

これも、Copilotに示されたもの。
=OFFSET($A$1,0,0,COUNTA(A:A),1)
のような関数を使うと、リストに入れた項目が自動で反映されるそうです。
A列にある選択肢の数を数え、その範囲をリストとして表示するという数式です。
OFFSET関数の記述方法を理解していないと読み込めません。
詳細は、Copilotの元ネタのノジマのサイトをどうぞ。
https://www.nojima.co.jp/support/koneta/56627/


別解(別記事)

というわけで、1~4の方法をお示ししました。
増える項目数が限定的なら、1で十分だと思います。
項目がどのくらい増えていくか分からない、という場合は3、4もありですが、ちょっと面倒。
実務では「データを入力していく」というよりも、「既に入力(=存在)するデータから、項目を選んでいく」という場合が多いのではないでしょうか?
その際には、もっと楽な方法があります。
自分で考えついたものではありますが、当然、既に同じようなことをしている方は多数いるでしょう。
私としては3や4よりも楽だと思っています。
具体的な方法は次回。
タイトルに (基本) と入れているのも、そのためです。


いいなと思ったら応援しよう!