• ベストアンサー

エクセル・区間を含む複数条件から該当する値を返す。その2

材質(3種類)、容積(7種類)ごとに異なるレート(売りと買い2種類)を、材質、容積を指定することによって導き出す方法をご教授願います。 http://oshiete1.goo.ne.jp/qa4820850.html?ans_count_asc=1 過去の質問を調べたところ上記が類似していたので、その中にある_Kyle様の回答を見ながら自力で作成してみましたが材質(列で展開)は指定どおり飛んでいきますが、容積(行で展開)が最上段のまま飛んでいかない状態です。 詳細は以下の図をご覧ください。 SHEET1は、レートの表です。     A  B  C  D  E  F G 1 材質A 材質B 材質C 2 容積   buy sell buy sell buy sell 3  0.00 100 120 110 130 120 140 4  0.81 5   1.01 6   2.01 7   3.01 8   4.01 9   5.01 10  6.01 容積は、0~0.8m3の場合が3行目、0.81~1.00m3が4行目になっています。 SHEET2は、材質、容積を入力してレートを出すものです。   A   B  C  D E F 1 材質  容積      buy sell 2         レート     A2に材質(A or B or C) B2に容積 を入力するとE2にbuy F2にsellのレートが出てくるようにしたいのです。 現在、SHEET2!E2に以下の式を入力し容積(行で展開)が最上段のまま動かない状態です。 =INDEX(OFFSET(SHEET1!$B$3:$B$10,,IF(A2=I1,0,IF(A2=K1,2,4)),MATCH(B2,SHEET1!$A$3:$A$10,1),),1) 以上、よろしくお願いします。

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

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

こんにちは! すでに良い回答が出ていますので、参考程度で目を通してみてください。 ↓の画像で説明させていただきます。 区分の境界がどのようになるか?によって表の配置が変わってきます。 (データを昇順に並べるか、又は降順に並べるか・・・です) 本来は表の薄い水色部分のみでOKなのですが、判りやすくするために 敢えて「○を超え」や「△未満」の列も載せています。 ○を超えて~△以下 というのであれば画像の上側の表になり、 ○以上~△未満 ということであれば下側の表を使います。 仮に上側の表を使った場合のSheet2のC2数式は =IF(COUNTBLANK($A2:$B2)>0,"",INDEX(Sheet1!$C$3:$H$8,MATCH($B2,Sheet1!$B$3:$B$8,-1),MATCH($A2,Sheet1!$C$1:$H$1,0)+COLUMN(A1)-1)) として列方向と行方向にコピーすると画像のような感じになります。 余計なお世話かもしれませんが、 下側の表の場合のC2セルの数式は =IF(COUNTBLANK($A2:$B2)>0,"",INDEX(Sheet1!$C$12:$H$17,MATCH($B2,Sheet1!$A$12:$A$17,1),MATCH($A2,Sheet1!$C$10:$H$10,0)+COLUMN(A1)-1)) という数式を入れ、列方向と行方向にオートフィルでコピーします。 以上、参考になれば幸いです。m(__)m

ssssh
質問者

お礼

tom04様、 早速のご回答をありがとうございました。 下の表を試してみたところ、無事に動きました。 すでに回答が出ていたのですね。 もっとくまなく探してみるべきでした。 本当に助かりました。 たいへんありがとうございました。

その他の回答 (2)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

E2セルへの入力の式を次に訂正してください。ごめんなさい。 =IF(OR(A2="",B2=""),"",INDEX(Sheet1!$A:$G,MATCH($B2,Sheet1!$A:$A,1),MATCH($A2,Sheet1!$1:$1,0)+COLUMN(A1)-1))

ssssh
質問者

お礼

KURUMITO様、 ありがとうございました。 この投稿が初めてでなにもわからず、登録手続きをすませて、質問をやっと書くことが出来てほっとしていたところでした。 こんなに早く回答をいただけると思いませんでした。 迅速なご対応に感謝いたします。 たいへん、ありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

シート1での1行目の材質の表示ではシート2の場合と同じ表示の形式に統一することにします。シート1でAとした場合にはシート2でもAのように同じとします。 シート2のE2セルには次の式を入力してF2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(OR(A2="",B2=""),"",INDEX(Sheet1!$A:$F,MATCH($B2,Sheet1!$A:$A,1),MATCH($A2,Sheet1!$1:$1,0)+COLUMN(A1)-1))

関連するQ&A