• ベストアンサー

エクセルで、2つのセル値(2つの条件)から、別シートの表から該当する値を参照する方法

シート(1)のA列とB列のセルに入力されている値を元に、 シート(2)の表を参照し、該当する値をシート(1)のC列に 表示させる方法があれば 教えて頂けると助かります。 なおシート(1)のA列は、参照するシート(2)の表の列タイトルに対応し、 シート(1)のB列は、シート(2)の行タイトルに対応するマトリックス表に なっております。 また、この列行タイトルの表記は「1から」または「1から9まで」 という範囲での表示になっています。 (例:シート(1)元データ) No| A列 | B列 | C列 | --------------------------------- 1 | 07  |  22  |  20 | ←C列は、シート(2)表を参照  2 | 18  |  15  |  30 |        3 | 01  |  09  |  05 |       4 | 21  |  03  |  30 |  5 | 30  |  28  |  35 |  (例:シート(2)参照する表) A列\B列 | 1~9| 10~19 | 20~29 | -----------------------------------   01~  | 05  |  10  |  20  |         05~  | 15  |  15  |  20  |           10~  | 20  |  25  |  30  |        15~  | 25  |  30  |  30  |    20~  | 30  |  35  |  35  |  現在、手作業でC列への入力を行っております。 何とか、作業効率を上げたいと思っておりますので、 ご指導下さいます様 宜しくお願い致します。

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

  • ベストアンサー
回答No.2

C2セルに =INDEX($B$9:$D$13,MATCH(A2,$A$9:$A$13),MATCH(B2,$B$8:$D$8)) 下へオートフィル。添付図参照。参考まで

KTN1123
質問者

お礼

早々のご回答をありがとうございました。 画像での解説が付いていたので、とても分かりやすく 大変勉強になりました。 早速、上記の関数式を試してみたところ希望通りの 回答結果を得ることが出来ました。 MATCH関数というのを初めてみたのですが、これをを使うと 特定の値の抽出作業が簡単にできるのですね(*^_^*) お陰様で、作業効率を大幅UPすることができそうです。 本当にありがとうございました。 また今後とも よろしくお願い致します。

その他の回答 (3)

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

No.3です! たびたびごめんなさい。 前回の回答はたぶん列・行が入れ替わっていました。 質問に >なおシート(1)のA列は、参照するシート(2)の表の列タイトルに対応し、 シート(1)のB列は、シート(2)の行タイトルに対応するマトリックス表になっております。 となっているので 単純にSheet1のA列はSheet2の列を参照し、B列はSheet2の行を参照する数式を作っていました。 前回のSheet1のC2セルの数式を =IF(COUNTBLANK(A2:B2)>0,"",INDEX(Sheet2!$D$4:$F$8,MATCH(A2,Sheet2!$A$4:$A$8,1),MATCH(Sheet1!B2,Sheet2!$D$1:$F$1,1))) に変更してみてください。 希望通りの結果になると思います。 どうも何度もごめんなさい。m(__)m

KTN1123
質問者

お礼

早々のご回答をありがとうございました。 画像での解説が付いて、とてもわかり易かったです。 早速、上記の関数式を試してみたところ希望通りの 回答結果を得ることが出来ました。 COUNTBLANK関数で空白セル時の対応まで考慮していただいて、 一歩先のアドバイスをありがとうございました。 お陰様で、作業効率を大幅UPすることができそうです。 また今後とも よろしくお願い致します。

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

こんばんは! すでに回答は出ていますが・・・ ↓の画像のように表を作ってみました。 Sheet2の表で、実際必要なのは水色部分でOKなのですが 判りやすくするために○以上~△未満 としています。 Sheet1のC2セルに =IF(COUNTBLANK(A2:B2)>0,"",INDEX(Sheet2!$D$4:$F$8,MATCH(B2,Sheet2!$A$4:$A$8,1),MATCH(A2,Sheet2!$D$1:$F$1,1))) という数式を入れて、オートフィルで下へコピーすると 画像のような感じになります。 ひとつ質問と結果が違うのが、列が「01」で行が「09」の場合 Sheet2の表だと「15」になるのですが・・・ たぶん間違いないと思いますが、今一度確認してみてください。 以上、参考になれば幸いですが 他に良い方法があれば読み流してくださいね。m(__)m

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

シート1のC1セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A1="","",INDEX(Sheet2!$A:$D,IF(A1*1>=20,6,INT(A1*1/5)+2),INT(B1*1/10)+2))

KTN1123
質問者

お礼

早々のご回答をありがとうございました。 早速、上記の関数式を試してみたところ希望通りの 回答結果を得ることが出来ました。 本当にありがとうございました。 また今後とも よろしくお願い致します。

関連するQ&A