• ベストアンサー

【Excel】条件が多すぎて…?

おはようございます。早速ですが質問です。 今、ある商品についてExcelで料金参照表を作っています。 商品名Aで仕様がa 商品名Aで仕様がb 商品名Bで仕様がa 商品名Bで仕様がb ・ ・ ・ 商品は”商品名R”まで、全部で18商品、 参照する料金表は全部で15パターンあります。 内訳としては 仕様a.bに対応するのが3商品 仕様a.cに対応するのが1商品 仕様a.dに対応するのが3商品 仕様aのみしか対応できないのが1商品です。 サイズを入れて料金表の中から値を拾うのは INDEXとMATCHを使ってできるのですが 参照すべき料金表を拾うことができないのです。 一度、以下のように作ってみたのですが 条件が多すぎて、ネストの制限に引っ掛かってか エラーになってしまいます。 IF(AND(A1="A",A2="a"),INDEX(料金表! $A$4:$H$8,C3,B3),IF(AND(A1="A",A2="b"),… 以下ずーっと繰り返し続く なにかいい方法はありませんでしょうか? これさえ解決すれば完成するのですが…。 どうか宜しくお願いいたします。

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

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

こんにちは。maruru01です。 別のシートなどに、料金表パターン対応表を作成しておいてはいかがでしょうか? 例えば、Sheet2に、    A   B   C ・・・ 1      a   b ・・・ 2 商品A   1   2 ・・・ 3 商品B   3   4 ・・・ 4 商品C   1   5 ・・・ ・・・ 商品Aの仕様aがパターン1 商品Cの仕様bがパターン5 ということです。 これで、CHOOSE関数を使用すればいいと思います。 =INDEX(CHOOSE(INDEX(Sheet2!$B$2:$C$4,MATCH(A1,Sheet2!$A$2:$A$4,0),MATCH(A2,Sheet2!$B$1:$D$1,0)),パターン1の範囲,パターン2の範囲,・・・),C3,B3) こんな感じ。

satolyzm
質問者

お礼

maruru01さん、こんにちは。 迅速なお答えありがとうございます! maruru01さんのお陰で完成することができました。 これまでの質問を検索してみて どうやらCHOOSE関数が便利らしいということは なんとなく見つけていたのですが なるほど!こういうふうに使うのですね! 目からウロコが落ちる思いですよ。 本当にありがとうございました。 20ポイントじゃ足りないくらい感謝の気持ちでいっぱいです。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • jindon
  • ベストアンサー率43% (50/116)
回答No.1

>INDEX(料金表!$A$4:$H$8,C3,B3) 1)まず、この数式が理解できません!説明してください。(MATCH は?) 2)各商品の仕様別の価格は複数存在しますか? もし存在するならばその仕切りは? もう少し具体的な参照表の例を提示された方が回答しやすいと思いますが?

satolyzm
質問者

お礼

そうですよね… 焦ってしまって説明足らずでした。すみません。 この商品は、横サイズと縦サイズをそれぞれ入力したうえで それに沿った料金表を参照するというもので、 上に書いたINDEX関数は、縦サイズの参照列・横サイズの商品行を 拾おうとしていました。 また別のセルに、料金表の金額面を参照するMATCH関数を 入れようとしていました。 質問内容は何度も確認すべきですね。 これからは気を付けます。 アドバイスありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A