dポイントプレゼントキャンペーン実施中!

例えば、VLOOK関数で、VLOOKUP(A1,'[aaa.xls]4月'!A1:C25,3,false)とした場合は、上手く動くとします。
次に、仮にA2セルに「[aaa.xls]4月'!A1:C25」と入力しておき、VLOOKUP(A1,A2,3,false)とすると上手く動きません(エラーになります)
A2に「[aaa.xls]4月'!A1:C25」と入れた状態で、それを利用してVLOOKUP関数を使おうとした場合、どのようにすればいいでしょうか?

どうして上記のようなことをしようとしているかというと、「aaa.xls」のシートが月ごとに分かれてしまっているからです。
別ブックで日を入れると対応するセル値を引っ張ってきたいんですが、以下のように設定しました。
VLOOKUP(A1,"'[aaa.xls]"&MONTH(A2)&"月'!A1:C25",3,false)
しかし、"'[aaa.xls]"&MONTH(A2)&"月'!A1:C25"の部分が認識されず、エラーとなってしまいます。
どのように直せばよろしいでしょうか?

A 回答 (1件)

A2に入力されている「[aaa.xls]4月'!A1:C25」は「文字列」として扱われますので、それをそのままセル範囲として用いることはできません。


その際にはINDIRECT関数を使います。INDIRECT関数は、参照文字列で指定されるセル参照を返す関数です。
(参考)
http://www.officetanaka.net/excel/function/funct …

数式は
=VLOOKUP(A1,INDIRECT(B1),3,FALSE)
となります。

なお、A2の「[aaa.xls]4月'!A1:C25」は、「'」は不要ですので、「[aaa.xls]4月!A1:C25」として下さい。

同様に、
>VLOOKUP(A1,"'[aaa.xls]"&MONTH(A2)&"月'!A1:C25",3,false)
についても、INDIRECT関数を使って、

=VLOOKUP(A1,INDIRECT("[aaa.xls]"&MONTH(A2)&"月!A1:C25"),3,false)
とすればOKです。(こちらも「'」は不要です)
    • good
    • 0
この回答へのお礼

回答を締め切るのをすっかり忘れていました・・・すいません。。
さっそくのご回答ありがとうございました。
回答いただいてすぐ試してみたところ、教えていただいた関数をいれると上手くいきました。
INDIRECT関数ってこういうふうに使うんですね。ありがとうございました。

お礼日時:2006/06/10 00:21

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