こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

VLOOKUPとINDIRECTで別のEXCELファイルのシートを参照したい

EXCEL2007を使用しています。

添付画像のように、例えば、B2のセルには
=IFERROR(VLOOKUP(A2,INDIRECT($B$1&"!a:b"),2,FALSE),0)
という関数があり、VLOOKUPとINDIRECTを使って同じEXCEL内の
別のシートを参照するようにしてあります。

※シートをそれぞれ 0910,0911,0912という名前にして各年月毎に
商品コードと数量を入れてあります。
この商品コードと数量が入ったシートを数量.xlsxという別のEXCELファイルにして
このMAINのEXCELシートにデータを持ってきたいのです。
何か方法はありますでしょうか?よろしくお願いします。

投稿日時 - 2010-03-04 16:26:12

QNo.5724411

困ってます

このQ&Aは役に立ちましたか?

7人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

別のファイルにしてということでしたら次のような式に変更してはいかがでしょう。
=IF(OR($A2="",B$1=""),"",IFERROR(VLOOKUP($A2,INDIRECT("["&B$1&".xlsx]Sheet1!A:B"),2,FALSE),0))

投稿日時 - 2010-03-05 07:23:23

お礼

KURUMITO様、本当に速くご回答頂きましてありがとうございます。
早速試してみます! 
=IF(OR($A2="",B$1=""),"",IFERROR(VLOOKUP($A2,INDIRECT("["&B$1&".xlsx]Sheet1!A:B"),2,FALSE),0))
では、別のEXCELファイル名を 0910 とか 0911 にして、その
中のシートを参照するようですが、応用すれば使えそうです。
ありがとうございました!!

投稿日時 - 2010-03-06 11:25:18

ANo.1

B2セルへの入力の式を次のようにして右横方向にドラッグしたのちに下方向にもドラッグしてはいかがでしょう。

=IF(OR($A2="",B$1=""),"",IFERROR(VLOOKUP($A2,INDIRECT(B$1&"!A:B"),2,FALSE),0))

投稿日時 - 2010-03-04 16:39:09

お礼

早速のご回答ありがとうございます。
質問の仕方が悪く、上手くお伝えできてないようで申し訳ありません。

MAIN以外の0910,0911,0912のシートをこのEXCELブック
(例えばMAIN.xlsxとします)ではなくて、別のEXCELファイル
(例えば数量.xlsx)の0910,0911,0912というシートにある数量を
参照したいということなのです。
※数量.xlsxというファイル名は固定で構いません。
MAIN.xlsxのB1からD1の値を変えることで、数量.xlsxのその
名前のシートの商品名に対応した数量をMAIN.xlsxに表示させたいと
思っています。

どうぞよろしくお願いします。

投稿日時 - 2010-03-04 17:21:26

あなたにオススメの質問