• ベストアンサー

特定のセルの値を返す関数を教えてください

セルの値の検索といえばVLOOKUP関数ですが、 例えば条件にかなったセルの左上の値を返す・・・などといった 範囲が同じ行に無いものを返す関数などというのはあるのでしょうか? 知ってる方がいましたら教えてください。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

   B   C   D ------------- 1| 2| 3| 1  10  100 4| 2  20  200 5| 3  30  300 6| 4  40  400 7| 5  50  500 こんなデータが入力されたシートがあって、C5(=30)を見つけるために、Vlookupを使わないで  =INDIRECT("C"&MATCH(30,C3:C7)+2) とすると30が表示されます。 これは、C3:C7の中をMATCHで30を探して『3』が答えになります。これに空白行数の『2』を加えて5行目だと分かります。 次に、INDIRECTでC列と5行目を指定して『30』を取り出します。Vlookupの代用品です。代用品を作ったのはVlookupは値を返すためです。INDIRECTは『セル』と思っていいでしょう。 ここで質問の条件にかなったセルがC5とすると 右下のセルD6 =OFFSET(INDIRECT("C"&MATCH(30,C3:C7)+2),1,1) 左上のセルB4 =OFFSET(INDIRECT("C"&MATCH(30,C3:C7)+2),-1,-1) になります。 OFFSET関数は =OFFSET(セル番地,行数,列数)のように使います。 行数は下に行けば+、上が-。列数は右が+、左が-になります。Helpに詳しく書かれています。 ご参考に。

nao945
質問者

お礼

nishi6様 エクセルの回答をいただいたnao945です。 お礼が遅くなって本当にごめんなさい。教えていただいたOFFSET関数こそ 探していた関数でした。本当にありがとう!

その他の回答 (1)

  • comv
  • ベストアンサー率52% (322/612)
回答No.1

こんばんは!   A  B  C  D 1 11     B202 式 2 12  A101 3 13  A102 4 14  B201 5 15  B202 6 16  B203 7 17  C301 8 18  C302 9    C303 例えば C1の値に合致するB列を検索して 合致する行の1つ上のA列の値を返すのであれば ・B列に同じコードが無く、A列は数値 であれば  =SUMIF(B2:B9,C1,A1:A8) ・A列(返す値が)が数値でなく文字列の場合  =IF(ISNA(MATCH(C1,B2:B9,0)),"",INDEX(A1:A8,MATCH(C1,B2:B9,0))) で試してみて下さい!

関連するQ&A