- ベストアンサー
EXCELの入力規則でリスト入力をさせたいセルがあります。
そのときのリスト項目ですが、例えばA列に北海道、青森、秋田・・・などの都道府県名が入っており、C列に○か空白が入力されている表があるとします。また行の数は47とします。 (○か空白の意味は、県庁所在地と都道府県名が同じ名前なら○(例に、新潟県と新潟市)、それ以外なら空白(三重県と津市)だとします) C列が"○"の場合のみA列のデーターをみて、それらをリスト項目と してダウンリストで選べるようにしたいのですが、どのようにしたらよろしいでしょうか? VBAのコードでなければできないようですか?教えてください。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
入力規則のリストに○のついた都道府県のみ表示します。 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)
その他の回答 (2)
セル範囲への名前付けと、INDIEWCT関数の組み合わせで3 できるような気がしますが... ただ「○」以外でも、選択肢がないリストがでてしまうでしょうが...
お礼
回答ありがとうございます! misatoannaさんのご指摘どおりやってみました。 vizzarさんも同様のアドバイスありがとうございました!
- nawata
- ベストアンサー率10% (2/19)
データ→入力規則なら、リストから○を選ぶことはできても if 関数などはそこでは使えません。 A列に県名、 B列に県庁所在市名、 C列に =SUBSTITUTE(A1,"県","") D列に =SUBSTITUTE(B1,"市","") E列に =IF(C1=D1,"○","") これらを下方向にオートフィル C 列とD 列は作業セルなので印刷範囲外にドラッグして移動。 これでいかがでしょうか?
お礼
早速ご回答いただきありがとうございます! そうですか・・・入力規則の元の値ではif関数不可ですか・・ 断言いただきありがとうございます。 質問では県名と県庁所在地の関係にさせていただきましたが、シート によっては県名と政令指定都市の有無等もあり、できればあくまで "○"を参照してA列の値を返すようにしたいのです。 VBAでないとできないのならばそちらの方法も模索してみます。 ありがとうございました!
お礼
misatoannaさん、できました! ありがとうございました! 色々な局面で利用できそうです。視野が広がりました。 nawataさん、vizzarさんも回答ありがとうございました。 本当に助かりました!