- 締切済み
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シートにデータを持ってきたいのです。 何か方法はありますでしょうか?よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- KURUMITO
- ベストアンサー率42% (1835/4283)
別のファイルにしてということでしたら次のような式に変更してはいかがでしょう。 =IF(OR($A2="",B$1=""),"",IFERROR(VLOOKUP($A2,INDIRECT("["&B$1&".xlsx]Sheet1!A:B"),2,FALSE),0))
- KURUMITO
- ベストアンサー率42% (1835/4283)
B2セルへの入力の式を次のようにして右横方向にドラッグしたのちに下方向にもドラッグしてはいかがでしょう。 =IF(OR($A2="",B$1=""),"",IFERROR(VLOOKUP($A2,INDIRECT(B$1&"!A:B"),2,FALSE),0))
お礼
早速のご回答ありがとうございます。 質問の仕方が悪く、上手くお伝えできてないようで申し訳ありません。 MAIN以外の0910,0911,0912のシートをこのEXCELブック (例えばMAIN.xlsxとします)ではなくて、別のEXCELファイル (例えば数量.xlsx)の0910,0911,0912というシートにある数量を 参照したいということなのです。 ※数量.xlsxというファイル名は固定で構いません。 MAIN.xlsxのB1からD1の値を変えることで、数量.xlsxのその 名前のシートの商品名に対応した数量をMAIN.xlsxに表示させたいと 思っています。 どうぞよろしくお願いします。
お礼
KURUMITO様、本当に速くご回答頂きましてありがとうございます。 早速試してみます! =IF(OR($A2="",B$1=""),"",IFERROR(VLOOKUP($A2,INDIRECT("["&B$1&".xlsx]Sheet1!A:B"),2,FALSE),0)) では、別のEXCELファイル名を 0910 とか 0911 にして、その 中のシートを参照するようですが、応用すれば使えそうです。 ありがとうございました!!