|支店|年度|科目|売上|分類|
|:--|:--:|--:|
|
|横浜|2017|作業料|1000|一般|
|埼玉|2017|配送料|5000|特殊|
|横浜|2017|預かり|500|一時|
|千葉|2018|作業料|1500|一般|
|千葉|2018|配送料|1000|特殊|
|埼玉|2018|事務料|1500|一時|
|千葉|2018|配送料|2000|一般|
|本社|2018|作業料|1000|特殊|
仮に上記のようなエクセルファイルがあるとします。
(データ用エクセルブックは20,000行程で6MB近い容量があります。)
これを年度別、支店別、科目別、分類別に集計したい場合
(実際の列は30列程あります)
END文で最終行を取得しfor文でif文をループさせ合計することを考えました。
for i = 2 to 最終行変数
if cells(i,1) = "横浜" _and
if cells(i,2) = "2017" _and
if cells(i,3) = "作業料" _and
if cells(i,5) = "一般" then
sum = sum + cells(i,4)
end if
next
集計結果シートの指定セルにrange分でsumを書き込み
支店、年度などは変数を用意して代入する予定です。
この場合だと集計条件分のfor分が必要になり集計作業時間がかかりそうなことの気が付きました。
このような場合、ピボットテーブルで集計しコピーしたほうがいいのでしょうか?
勉強のためピボットテーブルを使用しないで集計する方法はないものかと考えております。
また、マクロ上で元データブックを開き集計用ブックに一旦コピーしてから集計してから集計後ファイルが重くメール等で送信できない為消去しております。
データファイルを閉じる時に容量が大きい為かエクセルが固まってしまい。5分くらい待つケースがあります。
これは仕方ないことなのでしょうか?
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/28 11:15
2018/09/28 11:19
2018/09/28 11:27
2018/09/28 11:37
2018/09/28 11:42
2018/09/30 06:44 編集
2018/09/30 06:48 編集
2018/09/30 10:04
2018/09/30 13:45
2018/10/03 02:05