• ベストアンサー

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

セルの値の検索といえば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

  • ある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?

    Excelの関数について質問します。 ある範囲のせるを検索して、その隣のセルの値を取得するという関数を探しています。 なければユーザー定義で作りたいと思っています。 VLOOKUP関数では一番左端が検索されますが、 それをある範囲まで拡張して、 その右隣の値を取得できるようにしたいのです。 どうかお知恵をお貸しください。

  • VLOOKUP関数の選択範囲にセルの値を入れたい

    エクセルのVLOOKUP関数の選択範囲にセルの値を入れることは出来ませんか? やりたい事は(画像参照) 1、現在の時刻に一番近い時間を検索して、現在の色を出す。 =VLOOKUP(現在時刻の入ったセル,B1:C50,1) 2、次に一番近くに来る赤の時間を表示する 1が何行目かを表示して、 =VLOOKUP("赤",A【表示したセル】:B50,2) にしたかったのですが、出来ませんでした。 わかりにくい説明ですが・・・わかる方、よろしくお願いします。 また、他に良い方法があれば教えてください。

  • Excelで、関数の引数の値を条件によって変更したい

    VLOOKUP関数の引数[範囲]を、条件によって自動的に変更したいのですが、できますでしょうか。 例えば、セル[F10]に、VLOOKUP関数の[範囲]に相当する文字列を入れておいて、セル[G10]に、[=VLOOKUP(A10,F10,3)]などとして、値を呼び出したいのですが、どのようにすればいいのでしょうか。 ちなみに、セル[I10]に[=CONCATENATE("=VLOOKUP(A10,",F10,",3)")]とすると希望の文字列は得られ、これを[G10]に値のみをコピーすると、[G10]のセルには希望通りの文字列が入ります。しかしこれは単なる文字列ですから関数として機能しません。一旦訂正モードにしてそのまま確定すると関数として認識してくれますが、全行で訂正する訳にもいきませんから困っています。 変数を使うことになるのかな、とも思いましたが、マクロを組まないで関数の定義だけでできれば好ましいので、何とか工夫できないものかと思っています。 よろしくお願いします。

  • vlookupの結果があるセルの書式を取得したい

    vlookupの結果があるセルの書式を取得したい =VLOOKUP(検索値,範囲,列番号,検索の型)で値を取ってくることは 出来ますが、その値の入っているセルの書式を取得したい。 Sheet1の セルA1に、検索したい値が入っていて、 セルB2にVLOOKUP関数が入り。 範囲はSheet2のA1:D1000となっていて、 列番号に4と入っていて10行目に 検索値と一致する値が入っていた場合に、D10の値は VLOOKUP関数で持ってこれますが、D10のセル書式を セルB2に反映させたいのですが、どのようにすれば良いでしょうか? VBAでプログラムしないとダメでしょうか?

  • VLOOKUP関数の結果セルの右下のセルを表示したい

    VLOOKUP関数について、質問させてください。 現在使っているエクセルのブックのセルA1にVLOOKUP関数を使用し、そのVLOOKUPの「範囲」の部分に、別のブックの範囲を入力しました。 そしてその別ブックの中の、VLOOKUPの検索値に該当するセル(ここでは※とします)の値が、現在使っているブックのセルA1に表れるところまでは出来ました。 しかし、今度は現在のブックのセルA3に、別ブックの※セルを基準に、右方向に1つ・下方向に1つ移動したセルの値が自動的に表示されるような関数を出さなくてはならず、OFFSET関数やADDRESS関数など、色々試してみたのですが分かりません。 遅い時間に申し訳ありませんが、関数にお詳しい方は、どうか知恵をお貸しください。 よろしくお願いします。

  • EXCEL関数で値の範囲検索をしたい

    EXCEL関数で値の範囲検索をしたい お世話になっております。 シートに下記の表があります。    A    B    C 1  レベル MIN  MAX 2  1    0.3   0.7 3  2    0.8   1.2 4  3    1.3   1.7 5  4    1.8   2.2 6  5    2.3   2.7 7  6    2.8   3.2 8  7    3.3   10 たとえば、A10のセルに 1.5 と入力したら、その値がどのレベルの範囲であるのかを検索し、 レベルを返したいのです。 1.5のレベルは3なので、隣のA11のセルに 3 と表示する関数を作成したいのです。 値一致検索であればVLOOKUPを使えばいいのですが、 範囲検索はどうすればいいのかがわからなくて 質問しました。 ご教授おねがいいたします。

  • ExcelのVlookup関数で一致した文字のセルの番地を取得する方法

    ExcelのVlookup関数で一致した文字のセルの番地を取得する方法 プログラム(VBA)で、検索で使用する関数でVlookup関数というのがあるというのが最近知ったのですが、Vlookup関数は、検索するセルの範囲を指定して、検索対象の文字列が一致した場合、そのセルの内容(値)を返すという風に書いてあったのですが、値ではなく、そのセルの番地を取得する方法はあるのでしょうか? ありましたら、その方法を詳しく教えてください。Vlookup関数以外でも検索するコードがあるようですが、Vlookup関数に限った場合でよろしくお願いします。 回答よろしくお願いします。

  • Excel:LOOKUP関数を使って、右のセルの値を返したい

    今までVLOOKUP関数を使っていたんですが、 どの列の値を返すのではなく、 右のセルの値を返したいときは どういった関数を使えばいいのでしょうか?

  • HLOOKUP関数

    HLOOKUP関数?だけでは無いことなのかも知れませんが、HLOOKUP関数にて処理したい物があるので今回はHLOOKUP関数というタイトルで質問しているのですが? HLOOKUP(検索条件,デ-タ-表の範囲,行目,検索方法)の所の検索条件の該当セルは、他の関数で求めた結果の数値では、HLOOKUP関数に使用することは出来ないのでしょうか? そういう事もありえるので、貼り付ける時に形式を選択し、値にて貼り付け同様作業しているのですが?上手くいきません。 例えば、ある関数にて求めた数値が12だったとすると、このセルでは出来ない、このセルをコピ-後値で貼り付けても不可! しかし、他のセルに12と直接手動にて入れたセルを利用すると上手くいきます? どの様な間違いがあるのでしょうか?それとも不可能な事なのでしょうか?(因みに検索条件の当該セルの左上に緑マ-ク付いています) どなたかアドバイスお願いいたします。

  • エクセル Vlookup関数の入ったセルで関数を削除して値だけを残す方

    エクセル Vlookup関数の入ったセルで関数を削除して値だけを残す方法を教えてください。現在はコピーして、値のみをペーストしています。もっと簡単にできないでしょうか。

専門家に質問してみよう