• ベストアンサー

VLOOKUP関数で開いていないファイルを参照

月度ごとのファイルがあり、フォーマットは全て同じです。 <例> 一覧データ0604.xls 店番 金額 111  15000 112  10000 この金額を一覧表にしたいと思います。 店番  0604 0605 ・・・ 111  15000 12000 112  10000 18000 この一覧表を作るために、VLOOKUP関数を使いました。 普通に入れると、ファイル名の変更が面倒なので、作業行を作っています。 店番  0604 0605 ・・・ 作業行 111  15000 12000 112  10000 18000 06年04月の作業行(B2セル)には以下の式を入れています。 ="'D:\マイドキュメント\[一覧データ"&B1&".xls]全店明細'!$A:$B" そして実際のVLLOKUPは111店の場合こうです。(B3セル) =VLOOKUP($A3,INDIRECT(B$2),2,0) これでフィルコピーしてデータを持ってくることはできるのですが、一覧データファイルが開いていないとダメです。 すると2年分であれば24個のブックを開かないといけません。 出来ればファイルを開かずに使えると良いのですが、この式ではダメですよね? もしできる方法があれば教えて下さい。よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

>出来ればファイルを開かずに使えると~ と言うことですが、ブックを同時に開くように「作業状態の保存」で保存してはいかがでしょう 作業用のブックと参照したいブックをあらかじめ開いておいて  ファイル → 作業状態の保存 で保存するだけです これは文字通り作業状態(開いていたブックの状態)をそのまま保存する機能です 保存したファイルを開くと、保存時に開いていたブックを全て開いてくれますので【 手 間 】はかかりません また、各々のブックの変更は各ブックへ引き継がれますので普通に作業できます なお保存したファイルには ".xlw" の拡張子が付きますが、このファイル自体にはブックの中身のデータは存在しません データのバックアップやコピーが必要なときは、ブックを対象にしてください

-yellowtail-
質問者

お礼

ありがとうございます。 ここに書いたのは一例で、実際にはいつも同じファイルではないです。 たとえば一覧データの他にPL0604や、人件費0604…など。 また日付も06年~07年と固定というわけでもないのです。 ファイルの開き方ではなく、そのように参照できる式があれば知りたいと常々思っていたので質問しました。 説明不足で申し訳ありません。

その他の回答 (2)

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

エクセルでこういうことをしようとするから、無理が出てくるのです。 ブックを別にすると、VBAでも熟達しないと、処理できなくなる 恐れが多い。 VBAが出来ないなら、エクセルを本格的な仕事の取引関係の処理に使うな、が小生の持論です。 アクセスなどのデータベースを使う分野にもなる。 せめて多シート(月別をシートで分ける)にしておけばという風に思う。 VBAで各ブックの全レコードを1シートに集め、店番+月でソートして表の組み換えをしないとならないでしょう。 -- 一般に、ブックを開いてメモリに展開してないデータは読めないが鉄則です。 読めるように見える場合があっても、裏で開いていて、画面に表示してない場合です。 == 手作業でやるほか無い。

-yellowtail-
質問者

お礼

出来る方法を聞いたのであって、仕事のやり方の是否は聞いていません。 VBAもアクセスも使っています。が、それはまた別の仕事の話です。 私は、すでにできているファイルや仕組みを使う場合、その中で最大限効率的にやりたいと思うのです。 今後、違う仕組みを入れるにしても、このファイル処理に関しては、現状は変わらないのだからいまさら仕組みを変えることはできません。 VLOOKUPはINDIRECTを使わず、全て文字列で書けば閉じていてもきちんとデータを持ってくるので、なぜINDIRECTを入れるとダメなのか分からず質問しました。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

>2年分でれば24個のブックを開かないといけません。 毎月のファイルの中身は編集するのでしょうか? 今月分は編集されても過去の分は変更なしであれば 集計のファイルにコピイして貼り付けておけばどうでしょう。 毎月 ひとつのファイルを開く の 作業が一度は発生しますが。

-yellowtail-
質問者

お礼

ありがとうございます。 NO1の方のお礼にも書きましたが、この作業の単純化…という訳ではなく、なにか良い数式がないかなと思って質問しました。 いつもこのような名寄せ?的な作業をする時に、試行錯誤しているのですが、なかなか良い方法が思いつきません。 マクロを書いてやることもあるのですが、式でできればいいのにといつも思うのです。

関連するQ&A

専門家に質問してみよう