• ベストアンサー

一つの列に2つの入力規則を使いたい。

B列にはプルダウンで選択するために入力規則で、リストで名前定義を使っているのですが、 また 「そのB列に隣接するA列のセルに何か入力されてないと、 B列に入力できない」 「=入力規則のユーザー設定、COUNTA(A1)=1」 とういう2つのことをしたいです。 でも、入力規則は1つしか出来ないですよね? こうゆう場合はどうすればいいのでしょうか? マクロでしょうか? よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
noname#52504
noname#52504
回答No.2

名前定義済みリストの名前が"LIST"であるとして、 ・入力値の種類:リスト ・元の値:=OFFSET(LIST,,,COUNTA(A1)*ROWS(LIST)) とするのはいかがでしょう? COUNTA(A1)が1ならば、元のリスト(LIST)が返ります。 COUNTA(A1)が0ならば、行数0の配列が返るので、選択肢がなく結果的に入力できません。 (Excel2003で動作確認済み) 【余談】 「何か入力されているかどうか」の判定について。 COUNTAを使うと、長さ0の文字列""が入力されているとき1が返りますが、 そういう仕様でよろしいのでしょうか? 「空白セルを返す」処理で長さ0の文字列""が使われることが多いので、 一般的には、A1<>"" というような書き方をすることが多いと思います。 今回の場合ですと、 =OFFSET(LIST,,,(A1<>"")*ROWS(LIST)) となります。 ご参考まで。

noname#150498
質問者

お礼

大変参考になりました。ご回答ありがとうございます。

その他の回答 (1)

  • pauNed
  • ベストアンサー率74% (129/173)
回答No.1

こんにちは。 A列に何か入力していないと、リストを表示させない...というのではダメですか? 例えば   D  E 1 あ A列未入力 2 い 3 う この範囲を可変リスト範囲とします。 B1セルを選択します。 [名前の定義][名前]   LIST [名前の定義][参照範囲] =IF($A1="",$E$1,$D$1:$D$3) B1セルの[入力規則]リストで「元の値」 =LIST  #ちょっと規制が弱い気もしますので、他の方のレスも待ってみてくださいm(_ _)m

noname#150498
質問者

お礼

大変参考になりました。ご回答ありがとうございます。

関連するQ&A