• ベストアンサー

Excelで別シートのリストを入力規制したい

Excel97を使用しています。 Sheet1のA1を別シート「商品マスタ」内にある商品名 から選択させたいのですが、 「商品マスタ」のA2:A10に商品名という名前を設定しリストの元の値に =商品名 と「商品マスタ」内の範囲名を指定すると、範囲内のブランクセルまでがリストとして表示されてしまいます。 商品名は各自で入力するので何件あるのかがわからないのですが、うまく入力してある商品名だけをリストとして表示させる方法はありませんか?

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 商品マスタが[Sheet2]にあるとします。 名前定義の参照範囲に、 =OFFSET(Sheet2!$A$1,1,0,COUNTA(Sheet2!$A:$A)-1) と入力します。 すると、商品マスタに対するデータの追加・削除に対応出来ます。 ただし、商品マスタの商品名(A列)は連続して入力する必要があります。 また、A列でリストからはなれた場所(A1000とか)に余分な入力があると範囲がずれます。 別の方法としては、名前定義の参照範囲に、 =INDIRECT("Sheet2!$A$2:$A$" & MAX(IF(LEN(Sheet2!$A$2:$A$65536),ROW(Sheet2!$A$2:$A$65536)))) と入力します。 この場合は、A列で最も下に入力されている行までを選択範囲とします。 ただし、行を飛び飛びにデータを入力すると、間の空白もリストに表示されてしまいます。 また、下の方に余分なデータがあると、その行までの全部の行が選択範囲になってしまいます。

Exceler
質問者

お礼

OFFSET関数を使用したらできました。 ありがとうございました。

関連するQ&A