• ベストアンサー

excelのデータ抽出

縦軸の条件と横軸の条件からデータを抽出する方法を教えてください。 以下のような表があります。    A  B   C   D   E  ・・・・ 1    0.5  2.5  3.1  5.5 2 40   2  5   10  3 3 55 4 35 1行およびA列の値を別セルに入力して、クロスするデータを出したいのですが、例えば別セル(1)に40と入力し別セル(2)に5.5と入力すれば、別セル(3)に3と抽出したいです。 また、出来れば別セル(2)に入力する値が表にない場合、入力した値より大きな値で一番近い値を読み取れればベストなんですか。 例えば別セル(2)に5.4と入力した場合には5.5の列を抽出 なにか良い方法はありますか? よろしくお願い致します。

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

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

ごめんなさい。C1セルに入力する式を間違いていました。 次お式にしてください。 =INDEX(Sheet1!A:X,MATCH(A1,Sheet1!A:A,0),IF(COUNTIF(Sheet1!1:1,B1)>0,MATCH(B1,Sheet1!1:1),MATCH(B1,Sheet1!1:1,1)+1))

gyazu9150
質問者

お礼

上手く出来ました 有難うございました。

その他の回答 (2)

  • 135ok
  • ベストアンサー率34% (26/75)
回答No.3

>また、出来れば別セル(2)に入力する値が表にない場合、入力した値より大きな値で一番近い値を読み取れればベストなんですか。 >例えば別セル(2)に5.4と入力した場合には5.5の列を抽出 表の値を変えればいいのでは。 別添でいかがでしょう。 =OFFSET($A$7,MATCH(G8,$A$8:$A$10),MATCH(H8,$B$7:$E$7))

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

シート1にお示しのデータがあるとしてシート2のA1セルにシート1のA列の値、例えば40を入力し、B1セルにはシート1の1行目の値、例えば5.5と入力したとして、答えの3をC1セルに表示させるとしたら次の式をC1セルに入力します。 =INDEX(Sheet1!A:X,MATCH(A1,Sheet1!A:A,0),MATCH(B1,Sheet1!1:1,0)) この式の場合にはB1セルに5.4と入力した場合でも答えは3となります。 ただし5.6とした場合には0になります。シート1では5.5が最高の値になっているからですね。常に最高の値よりもB1セルは小さい値であることが必要でしょう。

関連するQ&A