• 締切済み

VLOOKUPの範囲

教えてください!!!! EXCEL関数のVLOOKUPの引数で、「範囲」を複数のシートから参照することは可能でしょうか?また可能であればその数式も教えてください。 よろしくお願い致します。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

ここまでなら出来ます。 Sheet2A2:A10 1 a 2 b 3 c 4 d 5 e 6 f 8 g Sheet3のA2:A10 11 x 12 y 13 z 15 u 16 v 特徴は検索値がある値を境にして、小はSheet2、越えるとSheet3に検索表が作れる場合です。 それぞれの中ではA列で整列している必要はありません。 ーーー Sheet1でA2:B6 A列  B列 11 x 12 y 13 z 15 u 16 v B列B2は =IF(A1>10,VLOOKUP(A1,Sheet3!$A$2:$B$10,2,FALSE),VLOOKUP(A1,Sheet2!$A$2:$B$10,2,FALSE)) 下方向に式を複写する 結果 上記B列。 ーー 3シートぐらいまでは、式の長さを考えて、可能といえるでしょうか。

nicmoney
質問者

お礼

ご回答ありがとうございます。 VLOOKUPでも、引数を工夫すればできることもあるんですね。 勉強になりました。

  • jo-zen
  • ベストアンサー率42% (848/1995)
回答No.1

参照範囲として複数のシートのいろいろな範囲を一括して参照することはできません。つまり、挿入⇒名前⇒定義で参照範囲の名前(例えばlistと名をつける)をつけるとして、例えば  =Sheet2:Sheet10!$A$1:$B$10 などのように入力したとしても、名前をつける時点ではエラーはでませんが、だからといってVLOOKUP関数の引数にlistという名を使って、Sheet1で  =vlookup(A1,list,2,true) などとしても、#VALUEとエラーが返されるだけになります。 一括参照はできませんが、参照範囲を切り替えて値を引っ張ってくることは可能です。例えば、=Sheet2!$A$1:$B$10 にlist1、=Sheet3!$A$1:$B$10 に list2 などと名前をつけて、Sheet1で、A1セルに名をつけたリスト名を入力(プルダウンリストから選択する方法もとれると思います)すると、=vlookup(A1,indirect(A1),2,true) で、A1セルのリスト名に応じた戻り値が得られます。INDIRECT関数は範囲を切り替える場合に使う関数となります。

nicmoney
質問者

お礼

できました!!! INDIRECT便利ですね。ありがとうございます。

関連するQ&A

専門家に質問してみよう