dポイントプレゼントキャンペーン実施中!

申し訳ありませんが助けてください。

A    B
1肉    鶏肉
2     豚肉
3     牛肉

4果物  りんご
5     みかん
6     いちご

7野菜  大根
8     にんじん
9     ピーマン

上記のような表をもとに、A10に入力規則で「肉,果物,野菜」のリスト入力をさせます。そしてB10には、A10が肉だったら「鶏肉,豚肉,牛肉」のリスト入力。A10が果物だったら「りんご,みかん,いちご」のリスト入力させたいと思っています。
そのためB10に入力規則をリスト表示にして、元の値に以下の計算式をいれました。
=IF(A10="肉",$B$1:$B$3,IF(A10="果物",$B$4:$B$6,$B$7:$B$9))

以上のためしで作ってみた計算式はうまくいったのですが、実際業務上のリストはAが15項目あり、ネストの制限によりIF関数を重ねられません。
他にいい方法がないか、お知恵を拝借したいと思います。よろしくお願いいたします。

※ちなみに、当方マクロの知識がまったくありませんがマクロで解決できるのであれば勉強しますのでよろしくお願いします。

A 回答 (2件)

こんにちは!


外していたらごめんなさい。
関数ではないのですが・・・

当方使用のExcel2003の場合です。
↓の画像でA10セルはメニューの入力規則のリストからD1~D3を範囲指定し、肉・果物・野菜 をリスト表示させるようにしています。

そして、B1~B3を範囲指定 → メニュー → 挿入 → 名前
→ 定義 から「肉」と定義。
同様にB4~B6を範囲指定 し、「果物」と名前定義
B7~B9を範囲指定し、「野菜」と名前定義
(範囲指定の後に、名前ボックスに直接入力しても構いません)

そして、B10セルを選択 → メニュー → データ → 入力規則 →リスト を選択し、
元の値の欄に
=INDIRECT(A10) としています。

これで画像のようにA10セルで選択したものだけがB10セルのリストの候補になります。

以上、参考になれば良いのですが
的外れなら読み流してくださいね。m(__)m
「入力規則リスト入力のIF関数」の回答画像2
    • good
    • 0
この回答へのお礼

できました! ありがとうございます!
実は名前の定義は行っていたのですが、
そんな便利なことができるとは露知らず、せっせとIF関数を入力していました。

INDIRECTですね。ひとつ覚えました。ありがとうございます。
またなにかありましたら、よろしくお願いいたします。

お礼日時:2010/02/17 14:51

ネストを深くしないで、たくさん分岐する。


下記同じ質問。
http://questionbox.jp.msn.com/qa5444180.html

この回答への補足

早速の回答ありがとうございます。参照URL拝見しました。
ただ、今回はリストの元の値への入力になりますので、
&でつなげると「単一の行または列の参照でなければなりません」と
エラー表示されてしまいます・・・

でもいいヒントになりました。分岐して、なおかつリストでも使える方法を
自分でももうちょっと調べてみます。
他にもなにかいい案があればお教えください。

補足日時:2010/02/17 14:16
    • good
    • 0
この回答へのお礼

ごめんなさい。IF関数そのものが間違っていたようです。
でも教えていただいたページは別の機会に役に立ちそうです。
ありがとうございました。

お礼日時:2010/02/17 14:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!