この人頭いいなと思ったエピソード

材質(3種類)、容積(7種類)ごとに異なるレート(売りと買い2種類)を、材質、容積を指定することによって導き出す方法をご教授願います。

http://oshiete1.goo.ne.jp/qa4820850.html?ans_cou …
過去の質問を調べたところ上記が類似していたので、その中にある_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)

以上、よろしくお願いします。

A 回答 (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
「エクセル・区間を含む複数条件から該当する」の回答画像3
    • good
    • 0
この回答へのお礼

tom04様、

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

本当に助かりました。
たいへんありがとうございました。

お礼日時:2010/03/18 16:05

E2セルへの入力の式を次に訂正してください。

ごめんなさい。
=IF(OR(A2="",B2=""),"",INDEX(Sheet1!$A:$G,MATCH($B2,Sheet1!$A:$A,1),MATCH($A2,Sheet1!$1:$1,0)+COLUMN(A1)-1))
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/03/18 15:39

シート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))
    • good
    • 0

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