マンガでよめる痔のこと・薬のこと

現在、エクセルの4つファイルを6人で共有しています。
そのファイルA~Dに店舗情報が2000件程あります。
A~Dファイルの店舗名は一致していますが、情報の内容が違います。

やりたいことは店舗名毎にファイルを作り、店舗名毎のファイルにA~Dファイルの内容を参照させたいと考えています。

店舗名毎のファイルのテンプレートはあります。

アドバイスをいただきたい事
(1)、Aファイルの店舗名から自動的にテンプレートのファイルのファイル名を入力してエクセルファイルとして作成する方法。作成するファイルは2000個位になります。

(2)、(1)で作成したファイルのを自動で開き(VLOOKUP関数があります)、参照させたのち、ファイルを保存して閉じる。

(3)、(2)の内容を繰り返す。2000個のファイルがあるため。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

>内容を参照させたいと考えています


参照とは何を言うのでしょうか。データを持ってくるということでしょう。
ーー
並べ順ばらばらで
店舗名ー情報
のレコード(エクセルでは1行ずつの2000行)
4ブックあるのですね。
情報が1単位で複数行にまたがっていると面倒なんだがどうですか。
ーーー
質問者は関数式などで実現しようと考えているのかな。
それでは多分できないでしょう。
ーー
結局VBAを使わないと実現は無理と思います。
しかしVBAは店舗や情報の増減時に、質問の結果ファイルに即時更新は難しく、プログラム実行で作業するまでは、過去の一定時点の状態のままです。利用ニーズによってこれで十分なものも多数あり、使えないものもあります。
関数も即時更新が仕組みなんですが、多くの式がシートに入ると
動かなくなったり、反応時間が許容限度を越えて使えなくなるでしょう。
ーー
データベース式のオンライン的な仕組みが最善ですが、オンライン的でなくても、データを中央に単一化するデーターベース的な仕組みにしないと、エクセルで各自が勝手がってに別のファイルを作っていたんでは、こういう質問になります。
ーー
VBAの経験はあるのですか。
(1)4つのファイルを単一ファイルにつなぐ
4つぐらいなら手作業でもできるし、マクロの記録の修正でもでもできそう。
(2)店舗ごとにソート
手動でできるし、マクロでもマクロの記録をとれば判る。
(3)(2)のソート後のデータで、データを、言っているテンプレート様式に整形してファイルに書き出す。
ーーー
VLOOKUP関数は、見つけた最初のものしか引いてこない。こんな関数を使えるとは思えない。店舗は複数あるでしょう。
この発想する程度ではVBAなぞプログラムの経験があるのか心配です。
会社にシステム担当がおれば、その人たちの仕事のように思います。
担当者レベルでのニーズがあり、質問者が一番詳しいと自負し、システム的に分派行動的に考えているような感じがしますが、道は遠いのでは。
社内XXシステムと名づけるようなスモールシステムの1部として実現する内容のように思います。
ーー
出来合いか市販のソフトを当たってみては。
自分で作るのでなく、使う立場に発想を切り替える。

この回答への補足

丁寧なご回答ありがとうございます。

一連の操作は一度やってしまえば、二度と使いません。
ただ、最初だけは手間がかかると思い自動的に出来ないかと考えました。

※店舗情報はA~Dファイルありますが、一番データの多いファイルでA列~CX列まであります。VLOOKUP関数が入っているファイルを開くと、『更新しますか?』と表示が出てきますが、一番重いファイルは開けませんでした。『メモリが不足です』と出てしまいます。

※参照とは、テンプレートファイルにVLOOKUP関数で、A~Dファイルからデータを引っ張ってきたいと言うことです。

※店舗名をファイル名とし、テンプレートファイルのセルにファイル名を取得する関数が入力されています。これでVLOOKUP関数の検索値を店舗名に出来るようにしています。

現在の状態では、ファイルを開けば店舗情報(VLOOKUP関数で)が表示出来るようになっています。関数を値に変換するマクロもあります。

あとは、
(1)店舗名をテンプレートファイルに入力できるようにする事
(2)ファイルを開いて、数式を値に変更するマクロを実行して上書き保存
(3)連続して動くように出来れば尚いい。

一つ一つ手作業でやれば、1ヶ月位で終わりそうですが、一度にやってしまえないかと考えました。

質問の仕方が悪いのであれば申し訳ありません。

補足日時:2007/11/08 22:39
    • good
    • 0

メモリ不足でA~Dの元ファイルが開けないならデータの更新という


か読み込みは出来ない問題や、全部が別ファイルになってて検索も
比較も出来ない2000個のExcelファイルの山に使い道があるとは思え
ない問題はおいといて、テンプレートを作ってあってファイル名を
元にlookupするようになってるのなら、やんなくちゃいけないこと
は「テンプレートのコピーに店舗名なファイル名をつける」だけ。
中身はそれぞれのファイルを開く毎にvlookup関数が元のA~Dのファ
イルを開いて参照します。
とすると、Excelのマクロなんてまだるっこしいことをせずに、DOS
のバッチで処理した方が数百倍速いですね。

1.Aファイルの店舗名の列だけを抜き出してテキストファイルとして
保存。1行に1店舗のファイル「master.txt」を作る。
2.コマンドラインで、
 for %%f in (master.txt) do copy template.xls %%f.xls
こんな感じ。文法はうろ覚えだからどこかで確認してね。
    • good
    • 0

Excelで苦闘するヒマがあったらAccessやファイルメーカーの勉強


をした方が楽ですよ。
ちゃんと整理して分類して集計するのはデータベースの方が得意で
す。なんでもかんでも表計算ソフトでやろうとしないこと。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

Excelで完成させる必要があったので、質問しました。

お礼日時:2007/11/08 22:39

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


人気Q&Aランキング