• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルについての質問)

エクセルの店舗名毎のファイル作成方法とVLOOKUP関数の使用方法について

このQ&Aのポイント
  • エクセルの4つのファイルを6人で共有しており、各ファイルには2000件の店舗情報があります。この質問では、店舗名毎にファイルを作成し、参照させる方法についてアドバイスをいただきたいとしています。
  • 具体的なアドバイスとしては、(1)Aファイルの店舗名から自動的にテンプレートのファイルのファイル名を入力してエクセルファイルとして作成する方法、(2)(1)で作成したファイルを自動で開き、VLOOKUP関数を使用して参照させる方法、(3)(2)の内容を繰り返す方法が挙げられます。
  • これにより、2000個のファイルを効率的に作成し、参照できるようになります。

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

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

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

mimoule1998
質問者

補足

丁寧なご回答ありがとうございます。 一連の操作は一度やってしまえば、二度と使いません。 ただ、最初だけは手間がかかると思い自動的に出来ないかと考えました。 ※店舗情報はA~Dファイルありますが、一番データの多いファイルでA列~CX列まであります。VLOOKUP関数が入っているファイルを開くと、『更新しますか?』と表示が出てきますが、一番重いファイルは開けませんでした。『メモリが不足です』と出てしまいます。 ※参照とは、テンプレートファイルにVLOOKUP関数で、A~Dファイルからデータを引っ張ってきたいと言うことです。 ※店舗名をファイル名とし、テンプレートファイルのセルにファイル名を取得する関数が入力されています。これでVLOOKUP関数の検索値を店舗名に出来るようにしています。 現在の状態では、ファイルを開けば店舗情報(VLOOKUP関数で)が表示出来るようになっています。関数を値に変換するマクロもあります。 あとは、 (1)店舗名をテンプレートファイルに入力できるようにする事 (2)ファイルを開いて、数式を値に変更するマクロを実行して上書き保存 (3)連続して動くように出来れば尚いい。 一つ一つ手作業でやれば、1ヶ月位で終わりそうですが、一度にやってしまえないかと考えました。 質問の仕方が悪いのであれば申し訳ありません。

その他の回答 (2)

回答No.3

メモリ不足で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 こんな感じ。文法はうろ覚えだからどこかで確認してね。

回答No.2

Excelで苦闘するヒマがあったらAccessやファイルメーカーの勉強 をした方が楽ですよ。 ちゃんと整理して分類して集計するのはデータベースの方が得意で す。なんでもかんでも表計算ソフトでやろうとしないこと。

mimoule1998
質問者

お礼

ご回答ありがとうございます。 Excelで完成させる必要があったので、質問しました。

関連するQ&A