• ベストアンサー

入力規則リスト入力のIF関数

申し訳ありませんが助けてください。 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関数を重ねられません。 他にいい方法がないか、お知恵を拝借したいと思います。よろしくお願いいたします。 ※ちなみに、当方マクロの知識がまったくありませんがマクロで解決できるのであれば勉強しますのでよろしくお願いします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! 外していたらごめんなさい。 関数ではないのですが・・・ 当方使用のExcel2003の場合です。 ↓の画像でA10セルはメニューの入力規則のリストからD1~D3を範囲指定し、肉・果物・野菜 をリスト表示させるようにしています。 そして、B1~B3を範囲指定 → メニュー → 挿入 → 名前 → 定義 から「肉」と定義。 同様にB4~B6を範囲指定 し、「果物」と名前定義 B7~B9を範囲指定し、「野菜」と名前定義 (範囲指定の後に、名前ボックスに直接入力しても構いません) そして、B10セルを選択 → メニュー → データ → 入力規則 →リスト を選択し、 元の値の欄に =INDIRECT(A10) としています。 これで画像のようにA10セルで選択したものだけがB10セルのリストの候補になります。 以上、参考になれば良いのですが 的外れなら読み流してくださいね。m(__)m

h-work01
質問者

お礼

できました! ありがとうございます! 実は名前の定義は行っていたのですが、 そんな便利なことができるとは露知らず、せっせとIF関数を入力していました。 INDIRECTですね。ひとつ覚えました。ありがとうございます。 またなにかありましたら、よろしくお願いいたします。

その他の回答 (1)

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

ネストを深くしないで、たくさん分岐する。 下記同じ質問。 http://questionbox.jp.msn.com/qa5444180.html

h-work01
質問者

お礼

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

h-work01
質問者

補足

早速の回答ありがとうございます。参照URL拝見しました。 ただ、今回はリストの元の値への入力になりますので、 &でつなげると「単一の行または列の参照でなければなりません」と エラー表示されてしまいます・・・ でもいいヒントになりました。分岐して、なおかつリストでも使える方法を 自分でももうちょっと調べてみます。 他にもなにかいい案があればお教えください。

関連するQ&A