• 締切済み

エクセルで一覧表を「縦横」に調べて該当する値を取り出す方法について

Excel2002を使用しています。 下記のような表を作成し、「MATCH関数」と「INDEX関数」を使用して、該当の値(仮にα値:5.3、距離700とします)を取り出そうとしているのですが、エラーになってしまいます。 A B C D 1 3.4 3.5 3.6  2 700 30.0 30.4 30.7 3 750 31.1 31.6 31.9     4 800 32.3 32.8 33.2 5 6 α値 5.3     7 距離 700   この表から、行番号、列番号を出すために、以下の関数式を使っています。     行番号:=MATCH(B6,B1:D1)     列番号:=MATCH(B7,A2:A4)  最後に、「INDEX関数」で該当の値を取り出したいのですが、この「INDEX関数」の結果が「#REF!」になってしまいます。関数式は   =INDEX(B2:D4,D6,D7) ちなみに、D6には、行番号の関数式が、D7には、列番号の関数式が入っています。 このエラーを解消したいのですが、どなたか知恵を貸していただけませんでしょうか。よろしくお願いします。

みんなの回答

  • higekuman
  • ベストアンサー率19% (195/979)
回答No.3

#1です。 なんか、いろいろ勘違いしていました。 質問では、B6の値は 5.3 になっていますが、もしかして 3.5 の間違いですか? あと、 >    行番号:=MATCH(B6,B1:D1) >    列番号:=MATCH(B7,A2:A4) これも逆ですね。     列番号:=MATCH(B6,B1:D1)     行番号:=MATCH(B7,A2:A4) となると、=INDEX(B2:D4,D6,D7) ではなく、=INDEX(B2:D4,D7,D6) の値は、#2さんの言うとおり、30.4になります。

lily3595
質問者

お礼

ありがとうございました。 確認したところ、おっしゃられるとおり、列と行が逆になっていました・・・。 初歩的なミスで大変失礼しました! 親切なご回答、ありがとうございました。

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.2

これでいいのかな __A __B__ C__D ____3.4__3.5 __3.6 1_700_30.0_30.4_30.7 2_750_31.1_31.6_31.9 3_800_32.3_32.8_33.2 4 5 6_α値_3.5  7_距離_700 8___=INDEX(B2:D4,MATCH(B7,A2:A4),MATCH(B6,B1:D1)) 答えは、30.4になります。  

lily3595
質問者

お礼

解決できました。 ありがとうございました。

  • higekuman
  • ベストアンサー率19% (195/979)
回答No.1

D6には3と表示され、D7には1と表示されているんですよね? であれば、=INDEX(B2:D4,D6,D7) の値は 32.3になるはずですよ。(検証済み)

関連するQ&A

  • Excelの表から値を抽出

    ---------- |a|b|c|あ| ---------- |a|b|d|い| ---------- |a|e|f|う| ---------- 少々判りにくいかもしれませんが、上記の3行4列の表があったとします。 1列目が「a」、2列目が「b」、3列目が「d」を条件として、4列目「い」を返す式を作るにはどのような式がいいでしょうか? 説明がわかりにくいかもしれませんが、お願いします。

  • EXCELで該当数字の羅列から、該当数字をチェックする方法。

    エクセルの関数について質問させて頂きまます。 例えば A列   B列   C列 1行   111 2行   222 3行   333 4行   444 5行   555 6行   666 7行   777 8行   888 9行   999 10行   000 上記のような表があるとして、Dの10行目などにチェック欄を作成して、 そこに、数字を入力する事により、B列の数字の一覧から、 該当したものを、例えばC列に”該当あり”のように表示をさせたいと思っております。 例えば、そのチェック欄(Dの10行目)に”333”と入力すると A列   B列   C列 1行   111 2行   222 3行   333  該当あり 4行   444 5行   555 6行   666 7行   777 8行   888 9行   999 10行   000 このような感じです。 もしくは、該当する行の色を赤や青など他の色に変更する方法でも構いません。 説明が下手で分かり辛いかもしれませんが、どなたか、 このような場合の関数などをご存知の方おりましたら、 ご教授頂ければ幸いです。 どうぞ、宜しくお願い致します。

  • 【エクセル】複数条件に該当する値をかえす方法

    エクセルで表を作成していますが、どうしても上手くできません。 どなたかお分かりになりますでしょうか。 エクセル   列A   列B    列C      ---------------------------------- 1 個人   新規   2000 (円) 2 法人   新規   3000 (円) 3 法人   新規   2500 (円) 4 個人   既存   1000 (円) 5 その他  新規    500 (円) 列A、列Bはそれぞれ固定値が入ります。 列Cはすべての値(定まっていない値)が入ります。 列A、列Bをそれぞれ条件として、該当する場合列Cの 値を別シートにかえしたいのです。 例)列Aが「個人」、列Bが「新規」の場合、 列Cの値をかえす 関数を使って =IF(AND(A1=個人,B1=新規),"C1","")  とやってもエラーになってしまいます。 別シートには表を作成してあり、あるセルに列Cの 値のみ反映させたいのですが、うまくいきません。 同シート内でやっても上手くいかないので、数式そのものに 問題があると思っています。 上手く説明が出来ているか自信がありませんが、 解決できる方法はありますでしょうか。 どうぞ宜しくお願い致します。

  • Excelで値と値をくっつけたり、+1する方法を教えてください

    添付した画像のような表を作成しています(添付用に加工しています) A列とB列は、手入力します。  A列:2桁の半角英数  B列:3桁の半角英数 C列に入るものは、  11(固定された数字)+A列の値+B列の値+001から始まる連番 ですので、3行目でいうとC3に「11 A1 B22 001」(分かりやすく半角スペースを空けています)      4行目ですとC4に「11C3D44002」 という値をA列、B列に入力をしたら、C列に上記のような10桁の値を 自動で入力されるしたいのですが、関数などで行うことでできないものかと思い質問しました。 現状は、C列も手入力で行っておりまして、  ・最初の2桁は、固定数値  ・A列とB列の値を使用している  ・最後の3桁は001からの連番を使用している    ※終わり3桁は無条件で001~の連番にしている もし関数などで対応可能でありましたら、どのような数式にすればよいのか ご教示頂けるとありがたく思います。 よろしくお願い致します。

  •  エクセル関数式により、列ごと最後尾と最後尾からの2行目の値を抜き出す

     エクセル関数式により、列ごと最後尾と最後尾からの2行目の値を抜き出す。  初めまして、よろしくお願いします。      A  B  C  D  E 1    赤  青  黄  緑  黒 2  3    4    1  3  2  0  9 5    9  1  3  4  3 ・    ・  ・  ・  ・  ・ ・    ・  ・  ・  ・  ・   112  4  6  1  9  6 113  7  7  5  8  1 114  6  9  1  3  7    115  7     2  5  0 116  8     0     0  という表があります。 各列の空白、もしくは0の入力されている後の値(A列では8、B列では9、C列では2、D列では5、E列では7)と最後尾の数字から2行目の値を(A列では6、B列では6、C列では5、D列では8、E列では6)を抜き出すことのできる関数式の方法がありましたら、教えていただきたく。よろしくお願いします。

  • INDEX関数の値を合計する方法

    =INDEX(Sheet2!C5:C100,MATCH(Sheet3!B4,Sheet2!A5:A100,0)-1) という関数で出た値と、 =INDEX(Sheet2!C5:C100,MATCH(Sheet3!C4,Sheet2!A5:A100,0)-1) という関数で出た値の合計を、Sheet1のセルに入れたいのですが、どのようにすればスマートにいくでしょうか。(検索値である、Sheet3!B4,の部分が違います) =INDEX(Sheet2!C5:C100,MATCH(Sheet3!B4,Sheet2!A5:A100,0)-1)+=INDEX(Sheet2!C5:C100,MATCH(Sheet3!C4,Sheet2!A5:A100,0)-1) とすれば、合計は出るのですが、 Sheet3のB4、C4、D4・・・と、4の行を検索した結果の値を足していきたいのです。 そうなると、 =INDEX(Sheet2!C5:C100,MATCH(Sheet3!B4,Sheet2!A5:A100,0)-1)+=INDEX(Sheet2!C5:C100,MATCH(Sheet3!C4,Sheet2!A5:A100,0)-1)+・・・・・・・・ と、非常に長くなってしまいます。 他の関数でスマートに計算する方法はないでしょうか。

  • EXCELの表を参照して値を返す方法

    例えば下記のような表があるとします。 表1(シート1)  A列  B列  ~10  A 11~20  B 21~30  C 31~50  D  ・  ・  ・ 151~  Z 表2(シート2) 45   X 21   X 133   X Xの箇所に表1のA列を参照してB列の値(AとかC)を返す方法はないでしょうか?IF文を使った場合7レベルまではできるのですが、それ以上のネストは無理なようです。ちなみに表1は30分類(行)ほどあります。 よろしくお願いします。  

  • エクセル関数式により、列の最後尾から2行目の値からの最大値の求め方。

    エクセル関数式により、列の最後尾から2行目の値からの最大値の求め方。  初めまして、よろしくお願いします。      A  B  C  D  E 1    赤  青  黄  緑  黒 2  3    4    1  3  2  0  9 5    9  1  3  4  3 ・    ・  ・  ・  ・  ・ ・    ・  ・  ・  ・  ・   112  4  6  1  9  6 113  7  7  5  8  1 114  6  9  1  3  7    115  7     2  5  0 116  8     0     0  という表があります。 各列の空白、もしくは0の入力されている後の値(A列では8、B列では9、C列では2、D列では5、E列では7)を最後尾とし、そこから2行目の値(A列では6、B列では6、C列では5、D列では8、E列では6)からの列(A列ではA4の1まで、B列ではB4の3まで、C列ではC4の2まで、D列ではD4の0まで、E列ではE4の9まで)の間の値の最大値(A列で、見えている部分のみではA5の9になります)を抜き出すことのできる関数式の方法がありましたら、教えていただきたく。よろしくお願いします。

  • EXCELで入力された式の値を求めて自動計算

    A B C D E 1|データNO |数値1| 数値2| 数値3| 2| 1| 0.3 | 0.2 | 0.5 | 3| 2| 0.3 | 0.2 | 0.5 | 4| 3| 0.3 | 0.2 | 0.5 | -------------------------------------------- 10| 2/1| 数式1| 数式2 | 数式3 | 11| 3/2| 数式4| 数式5 | 数式6 | 12| 【求めたい値】 数式1には=C3/C2、数式2には=D3/D2、数式3には=E3/E2 数式4には=C4/C3、数式2には=D4/D3、数式3には=E4/E3 B列の2/1というのをそのまま式にしたいです。 2/1、3/2などは規則性はありません。その都度変わります。 C列の式ではC列の値を、D列の式ではD列の値を用います。 関数で=MATCH(LEFT(D34,SEARCH("/",D34,1)-1),D1:D23,0))と入れ、C3の値を求めようと思いましたが この時点でエラーになりました。=MATCH(2,D1:D23,0)だと大丈夫なのですが・・・。 関数でやるととても式が長くなりそうなので、VBAの方が良いかとも思っています。 どのようにコード、もしくは式を書けば希望の値が得られるでしょうか? VBAの場合は2/1などの数値を入れた時点で自動計算できれば嬉しいです。 よろしくお願いします。

  •  エクセル関数式により、ある値が二つの値の間にある条件の時に抜き出す方

     エクセル関数式により、ある値が二つの値の間にある条件の時に抜き出す方法。  初めまして。よろしくお願いします。  例) A B C D E F 1赤 2 5 1 2青 9 2 3 青 3黄 1 9 4 黄 4緑 3 4 2 5黒 8 4 9 6紺 2 5 4 紺 7橙 5 1 6 8 9  D列にある値がB列にある値とC列にある値の間に有る場合、A列に有る値をE列に抜き出す(例では2行目、3行目、6行目のDの値がBCの値の間に有るためにEのセルにAの値を表示される)関数式を教えていただきたく、よろしくお願いします。

専門家に質問してみよう