- ベストアンサー
エクセルのファイル別データの集計について
初心者なのでよろしくお願いします。 次のようなケースでおたずねします。 会社の本部で作成したエクセルファイルの「売り上げ表」フォームを各支店(約100店舗)にインターネットのメールに添付して送信します。 各支店はこのファイルにデータを入力後、インターネットのメールに添付して本部に送信します。 この送付された各添付ファイルのデータを本部で当初のフォームに集計したいのですが、なるべく効率的にするにはどうしたらよいですか? エクセル2000を使ってます。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
すみません。コロンが抜けていました。 ='D\集計\[東北.xls]Sheet1'!A1 ではなく ='D:\集計\[東北.xls]Sheet1'!A1 としなくてはいけません。
その他の回答 (4)
- zealzany
- ベストアンサー率35% (19/53)
専門家ではないので、できればOKのレベルで。 私の場合はOUTLOOKなどMAPIのメールソフトでメールを受信し一括 変換しました。自作したのですが、シェアウェア等で言えば下記のURLのよ うなPGだと思われます。(下記のソフトは使用したことが無かったので文章 で判断) http://www.vector.co.jp/soft/win95/net/se235777.html http://www.vector.co.jp/soft/win95/net/se202664.html エクセルデータのCSVへの変換は以下のURLが参考になるかと思います。 http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_t19.htm 1.指定のフォルダに添付ファイル(エクセルファイル)を抽出する。 2.VBからエクセル(ファイル)を起動しCSV形式でデータをテキストファイルへ取り出す。 (アペンドモードで1つのテキストファイルに集約 その際、特定のセルにある店番と日付を各行にセット) 3.1の指定フォルダにエクセルのファイルがあるだけ繰り返す。 つまり、以下の2本のPGをVB6で作成して対応しました。 1:添付ファイルの変換用PG 2:フォルダに存在する全ファイルのCSV変換 本当はその作業が定期に発生(継続発生する)のなら、CGIなどを作成してHPから 直接入力させるとか、PDFファイルで入力ボックスを使用しメール送信させるのが良 いと思われます。
お礼
詳しいご説明ありがとうございました。 勉強してトライしたいと思います。
- zealzany
- ベストアンサー率35% (19/53)
同じ様なことをしたことがありますが、私の場合はVBでメールの全添付ファイル(エクセルファイル)を取り出し、全エクセルファイルを店番なりをつけたをつけた行として1度CSV(テキスト)ファイルにコンバート。そのあとDBで加工しました。(VBやVBAがつかえるとよいのですが。)
補足
ご回答ありがとうございます。 パソコンの機能としてVBAは使えると思います。 VBAの参考書も手元にありますが、素人ですのでどうすればよいのかよくわかりません。「メールの全添付ファイル(エクセルファイル)を取り出す」、「全エクセルファイルを店番なりをつけたをつけた行として1度CSV(テキスト)ファイルにコンバート」の方法を具体的に教えていただけませんか?
- sero
- ベストアンサー率47% (916/1944)
#1です その集計作業というのは今回限りなのでしょうか? 今後も継続するならデータベースソフト(Access)を 導入されたほうが労力はかからないと思いますが・・・ シートのコピーを簡略化する方法はしりませんが支店毎に 入力されたブックのデータをリンクさせるという手が あります。ただ、100近いブックをリンクさせた経験が ありませんので上手くいくかどうかわかりません。 各支店のブック名が毎回固定でシート名も固定できる のであればという仮定で 1.東北というシートを作り、A1セルに ='D\集計\[東北.xls]Sheet1'!A1 という式を入れます。 これをオートフィルで必要な分だけコピー。 2.東北というシートを支店の数だけコピー 3.シート名を適当にリネームする(北関東等) 4.ctrl+shift+@を押して数式表示とする 5.置換機能を使用し、"東北"を全て"北関東"に置換する 6.3~5の作業を支店の数だけ繰り返す 上記でDドライブの集計というフォルダ内に「東北.xls」 「北関東.xls」というブックがあれば数値が転記される 筈です。 (シート名が1文字でも異なっていればアウトですが) 集計するブックを作成するのは手間ですが、一度作成 すれば次回からはブックを開くだけで勝手にデータを 集めてくれます。 合計を求めるのは#1の手法を用いれば良いでしょう。
- sero
- ベストアンサー率47% (916/1944)
どういうフォームで作成されているか不明ですが、方法は いくつかあると思います。(私ならこうするという事で) 集計用ブックを一つ設け、そのブック内に入力済支店毎の シートをコピー(移動でも良い)します。 全く同一のフォームで作成されたシートであれば串刺し算 で複数シートのセルの合計を出せます。 例:sheet1からsheet20までの合計であれば、 =SUM('Sheet1:Sheet20'!A1 とすればSheet1からSheet20間に並んでいるシートの A1セルに入力されている合計が求められます。 (あくまで並んでいる順です) Sheet1、Sheet2,Sheet20,Sheet3と並んでいる場合は Sheet3は含まれませんので御注意を。
お礼
早速のご回答有り難うございます。 集計用ブックに入力済支店毎のシートをコピーするのに なにかよい方法はありませんでしょうか? なんせ100か店分ありますものですから...
お礼
なんどもご親切にありがとうございました。 参考にさせていただきます。