最新閲覧日:

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

A 回答 (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に詳しく書かれています。

ご参考に。
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/02/22 00:57

こんばんは!



  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)))

で試してみて下さい!
    • good
    • 0

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

このQ&Aを見た人が検索しているワード


人気Q&Aランキング

おすすめ情報