• ベストアンサー

エクセルの関数

=VLOOKUP(A1,B10:C100,2,FALSE) の関数において条件により参照するセル、セルの範囲を変更したいです。 参照するセル A1 や B10:C100 を変数に置き換えることはできますか? つまり A1を参照する場合やその他のセル(例えばA2)を参照したり B10:C100の範囲を例えばB101:C200に変更させたいです。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.4

方法はいくつかありますけど、条件をどうするかで変わりますね。 INDIRECT関数でどうでしょうか? =VLOOKUP(INDIRECT("A"&E1),INDIRECT("範囲"&E2),2,FALSE) として、E1に1とか2と入力することで参照セルを変更できます。 セルの範囲の場合は、B10:C100に"範囲1"、B101:C200に"範囲2"と名前付けしてもらえれば E2の入力変更で同様に変更できます。

その他の回答 (4)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.5

>A1を参照する場合やその他のセル(例えばA2)を参照したりB10:C100の範囲を例えばB101:C200に変更させたいです。 検査値のセルと範囲のセルをどのような条件で変更するかを提示しないと具体的な回答は無理かと思います。 考え方としてはADDRESS関数で算出されたセルのアドレスをINDIRECT関数で指定する方法になるかと思います。 =VLOOKUP(INDIRECT(ADDRESS(行番号,列番号,4),ADDRESS(行番号,列番号,4)&":"&ADDRESS(行番号,列番号,4),2,FALSE) ADDRESS関数の第3引数の4は相対参照が返ります。 =ADDRESS(2,1,4) → A2 =ADDRESS(101,2,4)&":"&ADDRESS(200,3,4) → B101:C200 其々のADDRESS関数で行番号と列番号はあなたの考えている数式で返り値を与えてください。

  • shintaro-2
  • ベストアンサー率36% (2266/6245)
回答No.3

Indirectではだめですか? indirectで特定セルの値を参照させることは可能です。 例えば↓ http://pc.nikkeibp.co.jp/pc21/tech/excel36/27/

回答No.2

どのような場面なのかが具体的にイメージ出来ないので、 一般的な事書きますね。 IF関数と組み合わせてみたらいかがでしょうか。 =IF(条件1,VLOOKUP(...),IF(1jouken 2,VLOOKUP(...),...) とします。 ただし、IFの中に使えるIFの数には限りがあったので、あまりに条件が多い場合は、 不向きですね。 もしくは、列を増やして、そこに細かい場合分けをしておいて、 最後に、非表示にするというのも手です。 個人的には、こっちの方が後から見てもわかりやすいし好きです。

mf_firebird
質問者

補足

言葉足らずですみません。 IFはよく使っています。 今回は指定したい範囲が一定ではないので変数に代入したいです。

  • yumi0215
  • ベストアンサー率30% (1335/4411)
回答No.1

IF関数を組み合わせるか両方の条件でのVLOOKUPを2か所に表示するようにするのはいかがでしょう。

関連するQ&A