• ベストアンサー

EXCELの入力規則でリスト入力をさせたいセルがあります。

そのときのリスト項目ですが、例えばA列に北海道、青森、秋田・・・などの都道府県名が入っており、C列に○か空白が入力されている表があるとします。また行の数は47とします。 (○か空白の意味は、県庁所在地と都道府県名が同じ名前なら○(例に、新潟県と新潟市)、それ以外なら空白(三重県と津市)だとします) C列が"○"の場合のみA列のデーターをみて、それらをリスト項目と してダウンリストで選べるようにしたいのですが、どのようにしたらよろしいでしょうか? VBAのコードでなければできないようですか?教えてください。 よろしくお願いします。

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

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

入力規則のリストに○のついた都道府県のみ表示します。 48行目とE列を作業用に使います。 1.C48に○を入力しておきます。 2.E1に次の式を入力して [Ctrl]と[Shift]を押しながら[Enter]し、  これをC48までドラッグコピーします。   =INDIRECT(ADDRESS(SMALL(IF(C$1:C$48="○",ROW(A$1:A$48),""),ROW()),1)) 3.入力規則のリストを設定するとき、"元の値"として次の式を入力  します。   =OFFSET($E$1,0,,MATCH(0,$E:$E,0)-1)

cb1986
質問者

お礼

misatoannaさん、できました! ありがとうございました! 色々な局面で利用できそうです。視野が広がりました。 nawataさん、vizzarさんも回答ありがとうございました。 本当に助かりました!

その他の回答 (2)

noname#79209
noname#79209
回答No.3

セル範囲への名前付けと、INDIEWCT関数の組み合わせで3 できるような気がしますが... ただ「○」以外でも、選択肢がないリストがでてしまうでしょうが...

cb1986
質問者

お礼

回答ありがとうございます! misatoannaさんのご指摘どおりやってみました。 vizzarさんも同様のアドバイスありがとうございました!

  • nawata
  • ベストアンサー率10% (2/19)
回答No.1

データ→入力規則なら、リストから○を選ぶことはできても if 関数などはそこでは使えません。 A列に県名、 B列に県庁所在市名、 C列に =SUBSTITUTE(A1,"県","") D列に =SUBSTITUTE(B1,"市","") E列に =IF(C1=D1,"○","") これらを下方向にオートフィル C 列とD 列は作業セルなので印刷範囲外にドラッグして移動。 これでいかがでしょうか?

cb1986
質問者

お礼

早速ご回答いただきありがとうございます! そうですか・・・入力規則の元の値ではif関数不可ですか・・ 断言いただきありがとうございます。 質問では県名と県庁所在地の関係にさせていただきましたが、シート によっては県名と政令指定都市の有無等もあり、できればあくまで "○"を参照してA列の値を返すようにしたいのです。 VBAでないとできないのならばそちらの方法も模索してみます。 ありがとうございました!

関連するQ&A