- 締切済み
エクセル)ファイルを検索し、セルを参照
Aフォルダ内に入っている複数のファイルがあります。 abc01xyz.xls abc02xyz.xls abc03xyz.xls それぞれのブックのシートX、セルA1にはファイル名にある数字と同じ数字が入っています。 ■質問 abc02xyz.xlsのセルB2に、abc(abc02xyz.xlsのシートX、セルA1の値-1)xyz.xls のシートY、セルB2の値をコピーしたいのですが、どんな関数を使えばよいのでしょうか、いろいろ本をめくったり、インターネットで調べたのですが、なかなか参考になるケースがなくて困っておりまして、どなたか詳しい方、ご指南いただけませんでしょうか・・・。 INDIRECT関数を使うのでしょうか
- みんなの回答 (5)
- 専門家の回答
みんなの回答
No.1のkozirou54です。 最近非常に似た質問がありました。そちらの方は解決しましたので、ご参考までに、そのURLを書いておきます。 http://soudan1.biglobe.ne.jp/qa5457010.html 回答No.7・8あたりが役立つと思います。これはマクロを使って、次々にファイルを開き、データを取り込むものです。
INDIREC関数は、参照先のファイルを開いていないとエラーになります。 たとえば「abc02xyz.xlsのシートX、セルA1の値-1」が1の場合、「abc01xyz.xls」を参照しますが、その際「abc01xyz.xls」を開いておく必要があります。 ちなみに、abc02xyz.xlsからabc02xyz.xls内のセルを参照するわけですから、次の式でOKです。 =INDIRECT("[abc"&TEXT(SheetX!A1-1,"0#")&"xyz.xls]Sheet1!B2")
お礼
ご回答ありがとうございます。 なるほど、開いておくのをすっかり忘れておりました。 そういえば本に書いてありました・・・。 kozirou54さんの式できちんと動作致しました。 あとは、abc(XX-1)xyz.xlsを自動で開ければOK(手間的に)なのですが。 エクセルは難しいですね。
- imogasi
- ベストアンサー率27% (4737/17070)
これはVBAの問題ですか 関数の引数における、参照の問題ですか。 ーー 前者ならWEBに沢山記事がある。 例えばフォルダ内のファイルを参照して何かをする。 ーー 前者なら例として3つあげて質問する必要が無いと思う。 WEBで「他ブック参照」で照会すれば沢山記事がある。 http://www.excel-jiten.net/formula/ref_other_books.html ー そのセルの値でなくて、そこに入っているデータ’セル番地)で、もう一度セル参照するなら、INDIRECT関数をやってみてください。 簡単例 Sheet4のÅ2にXYZ(セルのデータ) Sheet3のA3にSheet4!A2(文字列) の場合 Sheet2のA1に =INDIRECT(INDIRECT("Sheet3!A3")) でSheet2のA1はXYZになりました。 このブック版と思いますが。
お礼
ご回答ありがとうございます。 参照記事参考になりました。 説明不足で申し訳ありませんでした。 例では数字が入っていますが、正確には 同フォルダに保存されている、abcXXxyz.xls(XX=01~99) のどのファイルを開いてもSheet1のB2には、abc(XX-1)xyz.xlsのSheetYのB2のデータをコピーしたいのです・・・。 INDIRECT関数でできたらいいなと思っておりますがVBAでも同じ動作できればいいのですが、私の自宅のエクセルを会社のエクセルが2007と2003と違うので、自宅でこしらえて会社で使用というのが少々不安です・・・勝手も少し違いますし。
データが数値だと0が付かないので、こちらの方がいいかな。 =INDIRECT("[abc"&TEXT(INDIRECT("[abc02xyz.xls]Sheet1!A1")-1,"0#")&"xyz.xls]SheetY!B2")
お礼
早速のご回答ありがとうございます。 kozirou54さんのご回答の通り入力してみましたが!REFが返ってきました。 検証してみたところ、!REFを返す直前?までは指定のファイルの指定のセルを参照しているようなのですが・・・
=INDIRECT("[abc"&INDIRECT("[abc02xyz.xls]Sheet1!A1")-1&"xyz.xls]SheetY!B2") 検証はしていませんが、おそらくこうなるのでは……。試してみてください。シートXが「シートX」なのか「X」なのかわからなかったので、「SheetX」としてあります。
お礼
ご回答ありがとうございます。 なるほど・・・。 とても参考になりました。 なんとか思い通りの動作ができるようになりました。 ありがとうございます!