• ベストアンサー

Vlookupの応用?

通常、VLOOKUPを使い、検索する場合は、 =VLOOKUP(検索値,範囲,列位置,検索の型)となると思います。 このうち、検索値と範囲(の左端)、列位置をどこかのセルから取得するにはどのようにすればよいでしょうか? たとえば、 A1セルには1と入力(A列を参照)、B1セルには2と入力(B列を参照)、C1セルには3と入力すると、 A3セル=VLOOKUP(A3,B:Z,3,false) となるようにしたいのですが、どのようにすればよいでしょうか。 お願いします。

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

  • ベストアンサー
  • dogsiva
  • ベストアンサー率32% (92/279)
回答No.4

A1に入れた数値→検索値の入った列を指定する B1に入れた数値→検索範囲の左端列を指定する C1に入れた数値→検索列位置を指定する こういうことですね。 1,2はaddress関数で可能になります →indirect(address(1,a1)) →indirect(address(1,b1)&":$z$200") 3はvlookup関数の3番目の引数にそのまま入れるだけで大丈夫です。 ↓ =vlookup(indirect(address(1,a1)),indirect(address(1,b1)&":$z$200"),c1,false) ただし、少し見るとわかりますが、このままでは非常にエラーを起こしやすいです。 式に、a1,b1,c1が空白セルだった場合や想定外の数値が入った場合の条件式を入れておくことが必須であろうと思います。

その他の回答 (3)

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

VLOOKUP関数について=VLOOKUP(検索値,範囲,列位置,検索の型)の式の立て方は正しいのですが、この式は例えばA列に検索データ(例えば氏名)が入力されており、B列には郵便番号がC列には住所が入力されているとします。 そこでD1セルに氏名を入力したときに、その方の住所をE1セルに表示させるとしたらE1セルには次の式を入力します。 =VLOOKUP(D1,A:C,3,FALSE) ここで、3の引数は参照の範囲で指定したA列から数えて3番目の列から住所を引き出すことになりますので3が引数となります。 D1は検索をA列で行うときの氏名を入力しています。住所の表示はこの式を入力したE1セルということになります。

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.2

2点あります。 1点目 A3セル=VLOOKUP(A3,B:Z,3,false) の式は循環参照しています。(うまく動かないと思います) A3にA3を検索した結果を入れようとしているからです。 2点目 A3セル=VLOOKUP(A3,B:Z,C1,false) と直接セルを指定しても動きます。 そうじゃない場合、どこかでc1セルを判断する必要があります。 A2にc1と入力させるとか…。 でも、それならA2に3と入力した方が簡単ですよ?

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! 外していたらごめんなさい。 たぶん、オートフィルで列方向にコピーすると、参照列も同様にずらしたい! という解釈で・・・ =VLOOKUP(検査値,範囲,COLUMN(B1),FALSE) としてオートフィルでコピーではどうでしょうか? 上記の数式は数式を参照範囲の2列目の一致するものを返す数式になっています。 以上、参考になれば幸いですが 的外れなら読み流してくださいね。m(__)m

関連するQ&A