
[EXCEL] リスト入力⑬ 選択したデータは候補から消えていくプルダウンリスト ~入力表作成レッスン~
▶ こちらを先にどうぞ プルダウンリスト シンプル基本版
▶目次 > 様式/入力表の作成 > プルダウンリスト
▶関連記事:プルダウンリスト
【まとめ】

1 以下をB1に入れる
A列が元リスト、E列がリストから選んで入力する欄の場合
=FILTER(A1:A100, COUNTIF(E1:E100, A1:A100)=0)
2 E列に「データの入力規則」の「入力値の種類」で「リスト」を選び、「元の値」にB列を設定する(列全体でいい)。

*Excel 365 / 2021 以降対応
【説明】
プルダウンリストでデータを選んでいく際、一度選んだデータがリストから消えていくと便利な場合があります(重複入力を防止でき、早く選べる)。
例えば「当番表」の作成。
一度選んだ人がリストに残っていると再度選んでしまうミスが起こり得ます。
そのため、選んだ人はリストから消えると便利です。
以下は、「当番表」の一種ともいえる「動員表」での説明になりまます。
「動員表」とは、他所属から「お手伝い」要請が回ってきたときに作っておくもの。お役所だと結構あります。イベントのお手伝いとか、周辺清掃とか。
順番はあみだくじで決めるとか、結構アナログだったりします。
「あ」から「け」まで対象者がいるとして、最初は全員がリストに出ます。

ここから「あ」を選ぶと・・・

「あ」を選ぶと、次の欄のリストからは「あ」が消えています。
一度選んだ人は、リストには現れないのです。
これにより「重複入力」が避けられます。
当然、入力も効率化できます(「この人はもう選んでいるな」と考えなくていいので)。
これ、どうやって作ればいいでしょうか?
選んだデータが候補から消えていくリストの作り方
1 対象全体のリストを作る
これは基本です。元リストがないと始まりません。
リストは既存のものでかまいません。
項目の下に空欄セルを設けておくと便利です。
リスト選択の時に、空欄が一番上に表示されます。
従って、リストの一番上が表示されます。

2 入力表を作る
対象者を入力する表を作ります(D~E列)。

ここでは、E列に入力していくことになります。
本来は、この表は別シートにすべきですが、説明のためA列のリストと同じシートにしています。
*E列の氏名の右に他の入力欄を設けても構いません(例:動員日・内容等)
3 数式を入れる
A列の「検索」の隣に次の数式を入れます。
=FILTER(A1:A100, COUNTIF(E1:E100, A1:A100)=0)
*コピーしてそのまま数式バーに貼り付けできます。
(行範囲や列を修正するのなら、数式バーに張り付けてから。一旦メモ帳に張り付けてから直して数式バーに張り付けても構いません。)

数式の意味:=FILTER(A1:A100, COUNTIF(E1:E100, A1:A100)=0)
A列:元のリスト
E列:リストから選んで入力していく欄 ⇒ 「プルダウンに表示するデータから除外するデータのリスト」と同じになります。
・COUNTIF(E1:E100, A1:A100)
A列の各データが E列にあるかチェック
E列にデータがれば結果は「1」、データがなければ「0」となる。
・=0 ⇒ E列にないデータだけが対象となる
・=FILTER(A1:A100, COUNTIF(E1:E100, A1:A100)=0)
対象のデータだけを抽出 ⇒ E列にあるものを除いたA列のリストを作る
*行番号がないとうまく機能しないようです。
なお、行番号は全て同じ範囲でないとエラーになります。
*COUNTIFは複数条件の設定が可能な「S付き」のCOUNTIFS関数でも構いません。
今回は、COUNTIF関数で説明していますが、COUNTIFSは条件が1つだけでも使えるので、単一条件の時しか使えないCOUNTIFではなく、COUNTIFS関数だけを使う方が迷いがないかと思います。
4 入力欄にプルダウンを設定する
入力欄にプルダウンを設定します。
① Alt ⇒ A ⇒ V ⇒ V で「データの入力規則」を開く
② 「入力値の種類」を選ぶ
③ 「元の値」欄に、「検索対象」の列(ここではB列)を入れる。

これで、一度選んだデータは、候補から消えていくリストが出来ます。
セルを選択したら Alt+↓ で、リストが表示されます。

以上
プルダウンリストの記事は、これで一旦終了です。
お役に立てば幸いです。