塵積もりて山となれ

素人調べのメモであり覚え書きであり備忘録

【Excel】項目リストから選択できるようにする

動機:よくある項目選択形式で入力できるようにしたい。

参考

  1. ドロップダウン リストを作成する - Microsoft サポート

  2. 重複しないリストをドロップダウンリストに表示する(入力規則):Excelの基本操作

  3. EXCEL – 重複も空白も無いドロップダウンリストを「データの入力規則」からセルを参照して作る方法 | アトリエJ.

重複を気にしない場合

「データ」→データ ツール「データの入力規則」を選ぶ。 入力値の種類を「リスト」にし、元の値で参照したいリストの範囲を決める。「ドロップダウンリストから選ぶ」にチェックを入れる。

重複する項目を除きたい場合

(UNIQUE関数が使える場合は、それを使えば簡単に済む。)
参考ページ[3]では、3つの式が使われています。

(1)=IF(OR(COUNTIF(C$2:C2,C2)>1,C2=""),"",ROW())

(2)=IF(ROW(E1)>COUNT(F:F),"",INDEX(C:C,SMALL(F:F,ROW(E1))))

(3)=OFFSET($E$2,0,0,COUNTIF($E:$E,">!")-1,1)

使用されている関数の説明は元のページでなされているので、それを見ながらそれぞれの意味を読み取る。

1つ目の式。C列の2行目(元のリストの先頭)から〇行目までの範囲に〇行目の値が2つ以上あるか〇行目が空白なら、その行は無視し、〇行目でその値が初めて登場したらその行番号を返す。

2つ目の式。1から順に数えた△(番目)が重複なしの項目数より大きければ、その行は無視し、そうでなければF列(抽出した行番号)の△番目の行番号に対応するC列(元のリスト)の項目名を返す。

3つ目の式。E列の2行目(重複なしリストの先頭)から「E列の空白でない個数-1」個下の行までの範囲(=E列の項目名がある範囲全部)を返す。

備忘

「データ」タブの「データの入力規則」から進む。