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

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

エクセルについての質問

現在、エクセルの4つファイルを6人で共有しています。 そのファイルA~Dに店舗情報が2000件程あります。 A~Dファイルの店舗名は一致していますが、情報の内容が違います。 やりたいことは店舗名毎にファイルを作り、店舗名毎のファイルにA~Dファイルの内容を参照させたいと考えています。 店舗名毎のファイルのテンプレートはあります。 アドバイスをいただきたい事 (1)、Aファイルの店舗名から自動的にテンプレートのファイルのファイル名を入力してエクセルファイルとして作成する方法。作成するファイルは2000個位になります。 (2)、(1)で作成したファイルのを自動で開き(VLOOKUP関数があります)、参照させたのち、ファイルを保存して閉じる。 (3)、(2)の内容を繰り返す。2000個のファイルがあるため。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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

  • エクセルで「ファイル保存名」を自動作成したい

    エクセルで、複数の店舗で使用する「販売日報」を作成しております。 各店舗からいただくこの日報は別のシステムで取り込みを行う為、 ファイル名を統一する必要があり、店舗側で勝手にファイル名を作成 できないように、例えば、日報のエクセルのシート内に「ファイル保存」 ボタンを作成し、ファイル名を自動作成するマクロを登録したいと思って おりますが、マクロはほとんど分からず、いいアイデアが浮かびません。 どなたかお知恵をお貸しいただけないでしょうか? ■ファイル名は、下記のように「販売日報」を先頭にして店舗名_保存日_ 保存時間の体裁を考えてます。  ファイル名:販売日報_(店舗名)_(日付)_(時間)   ※(店舗名)は販売日報(エクセル)内で「A1セル」など固定した    場所に入力されており、その値を参照したい。   ※「日付」「時間」も自動作成したい。 うまくお伝えすることができませんが、イメージとしては「ファイル保存」 ボタンを押すと、エクセルで左上の「ファイル」-「名前を付けて保存」 を押した際に表示される「保存先を選択する画面」が表示され、ファイル名 には、『販売日報_(店舗名)_(日付)_(時間)』が既に表示されている、 といった具合です。 いろいろネットを介し調べましたが、ぴったりのものがなく悩んでおりました。 何卒宜しくお願いいたします。

  • EXCEL VBAについて

    VBAでCSVファイルをテンプレートのBBOKに読込むコードを 作り、CSVファイルから読込んだBOOK1データを集計する BOOK2を作成しています。 BOOK1・11/21・・・11/21・・・11/22・・・11/23と続きます      A     B     C      D 1  ID     店名   売上    日付 2 1104567   渋谷店  190,809   11/21 3 1102031   新宿店  209,808   11/21 4 1103450   横浜店  108,765   11/21 BOOK2・集計      A    B    C       D       E 1  ID   店名   11/21    11/22     11/23 2 1104567  渋谷店  190,809   203,487 3 1102031  新宿店  209,808   340,876 4 1103450  横浜店  108,765   547,627 ※BOOK1とBOOK2のIDの並び順は一致していません。 上記のBOOK1のデータをBOOK2に読込ませたいと考えています。 VLOOKUPやINDEX関数を使用しようかと考えたのですが、日付毎に ファイル名が違うのと、集計のファイルには外部参照をさせたくないと 考えています。 VBAで作成したいコードはBOOK1からBOOK2の日付のセルにIDを検索条件として日付毎のファイルを読込ませたいです。 フォームで日付を入力し、コピーするBOOK2のセルを指定後、BOOK1を選択するためにダイアログボックスを出したいです。 BOOK2のIDを検索条件としてBOOK1から一致する売上セルを抽出するコードだけでもわかれば何とか作成できそうなのですが、 ご教授いただけませんでしょうか?

  • エクセルのファイルを開いても内容を表示しない

    エクセルを見よう見まねで利用しています。きちんとした指導を受けてはいないので、意識しないで間違った操作をしてしまったのでしょうが、以下のような状況になってしまって、やりたいことができなくなり非常に困っています。 エクセルで台帳用のファイルを作り、他のファイルからVLOOKUPで必要な項目だけを参照するようにしました。 台帳用のファイルを開くとフレームは表示しますが、シートやその内容を何も表示しないので、台帳の内容を更新できないのです。 別のフォルダーに、同一名のエクセルファイルを作って開こうとすると「同一名のファイルが開かれているから…」というメッセージが出ます。また、VLOOKUPで台帳を参照しているファイルの検索キーを変えると、変えた検索キーに対応した正しいデータを参照できます。したがって、台帳用のファイルが消えてしまったのではないと思います。 何かの操作で、ファイルの内容を表示しないようにしてしまったのでしょうか、リカバーは可能なのでしょうか。よろしくお願いいたします。

  • エクセルについて質問です。

    エクセルについて質問です。 エクセルにてVLOOK関数を使用し、データベースを作成しております。 AファイルとBファイルを作成し、AファイルのaシートにBファイルのbシートを参照し、表示させることを目的としています。 bシートには約2000行のデータが記入されており、aシートに下記関数を入力し、表示しています。 =VLOOKUP(E6,'[A.xls]asheet'!$B:$AP,41,FALSE) 約1800行までのデータは表示されるのですが、2000行の検索値を入力すると#REF!や#N/Aというエラーメッセージが表示されてしまいます。 データ量が多すぎて処理ができないということなのでしょうか? 他に原因があるのでしょうか? 分かりづらい説明かもしれませんが、ご回答をお願いします。

  • VLOOKUP関数の応用版をご教示下さい。

    VLOOKUP関数において、参照するシートをフレキシブルに選択できる方法を探しております。 「参照」ファイルの「???」シートを参照したいのですが、???=A1セルなのです。(セルA1にシート名が記入されているのです。) A1の内容が変わるとVLOOKUP関数参照するシート名が自動的に変わるように設定したいのです。 下記のように演算式を組んだ場合に、「????」の部分にどのような関数を使用すれば良いのでしょうか? VLOOKUP(F36,[参照.xls]????!$A$1:$X$227,4,FALSE) 補足として、参照ブックは別ファイルですが、常に開いた状態と練っております。(元ファイルと連動してファイルが開かれます。) どなたか宜しくお願い致します。

  • ExcelのVLOOKUPについて

    B2に商品名を出したいと思っています。 A2の12桁の数値コードを使ってVLOOKUPにてD1~E4の表の商品名を参照することはできますでしょうか? A2に12桁はD2の13桁と違ってわざと一桁少なく入力して参照したいのです。

  • エクセルでばらばらのデータを一つにまとめたい。

    以下のような表を作成したいのです。 【作成したい表】     A     B    C 1  商品名  値段   店舗名  2  みかん   30    A店 3  りんご   120    B店 4  ばなな   150    C店 5  らっきょ   200   D店 今、欲しいデータが違うファイルにあります。 【データがある表】     A     B     1  商品名  入荷   2  みかん   30    3  オレンジ  100   4  いちご    300   5  らっきょ   200   現段階で、【作成したい表】のB列の値段は空白です。 【作成したい表】のAの列と【データがある表】のA列の文字列を検索し、 データが一致した場合、 【作成したい表】のB列値段の該当する行に【データがある表】のB列値段へ書き込みたいのです。 A列商品名は【作成したい表】と【データがある表】では並び順も違いますし、 商品名がないものもあります。 たとえば、みかんを例にとると、 【データがある表】A:2に「みかん」があります。 【データがある表】B:2に「30」とありますので、 【作成したい表】B:2に「30」と書き込む。 こんな感じです。 エクセル初心者なのですが、急きょ仕事で大量データの移し替え を頼まれました。 おそらくVLOOKUP関数やIF関数を使用するのだと思いますが うまくいきません。 よろしくお願いします。

  • エクセルで。。。

    エクセルで顧客リスト(Aとします)を作成し、 その後、別のエクセルファイル(B)を開くと、Aのデータを自動的に読み込むよう、設定したいです。 (ファイルBのSheet1に自動的に張り付く等) ただ、Bのファイル名は常に同じですが、 Aのファイル名は、毎日変わります。(その日の日付「20091218」等) どのような設定をすれば良いでしょうか???

  • エクセルのVLOOKUPの簡単な質問

    エクセルで簡単な郵便簿を作りたいのですが、    A   B      C       D       E               日付    部署コード  部署     1  001  経理部    9/1     001    経理部 2  002  企画部    9/2     008    総務部 こんな表で、A列、B列には最初から決まっている部署コードと 部署名が入っていて、D列にコードを入れると、A列から引っ張って きて、E列に自動的に部署名が表示されるようにしたいのですが VLOOKUPでどんなふうにすればいいでしょうか?

  • excelで外のブックのセルを参照が上手くできない

    excelでの操作で行き詰まっています。 他のexcelファイルのセルを参照するのに、1つのセルにドライブパス名からファイル名までを すべてを入力すると参照したいファイルを開いて無くても参照出来るのですが ドライブパス名のセルとファイル名のセルを組み合わせた時に、開いて無い時は参照が出来ません。 参照したいファイルを開いた状態なら見れますが開かない状態で参照するには どうしたら良いのでしょうか? ='D:\user\[abcde.xlsx]Sheet1'!B1 ・・・ abcde.xlsxを開いて無くてもB1が参照出来る。 A1セルに 'D:\user\[ A2セルに abcde.xlsx A3セルに Sheet1'!B1 と入れて =indirect(A1&A2&A3) ・・・ 参照できない ファイル名を随時変更して参照したい為の作業です。 乱文ですみませんが、ご教示願います。

専門家に質問してみよう