表題の件
SQLのgloupbyの様に指定された項目で集計し、アウトプット用のシートにコピーをExcel VBAで実現する場合の
考え方について教えて下さい。
私が考えたやり方は下記の通りになります。
①集計用の変数を用意する。
②データが入っているシートを、集計したい項目をキーにしてソートする。
③forの中にIFを入れ項目の変わり目で分岐させる。
for i=1 to 最終行
集計用変数=集計用変数+集計項目
if 「項目行」<>「項目行+1」 then →集計する項目セルをA列とした場合「if range("A" & i) <> range("A" & i + 1) then」
アウトプット用シートへコピー
集計用変数=0
End If
next
④印刷
この様に考えましたが、集計項目が複数になってくると下記の様に項目数だけfor文を回せなければならず、何か他に方法はないのかと考えております。
お知恵をお貸し下さい。
for i=1 to 最終行
集計用変数=集計用変数+集計項目
if 「項目行」<>「項目行+1」 then
アウトプット用シートへコピー
集計用変数=0
End If
next
for i=1 to 最終行
集計用変数=集計用変数+集計項目
if 「項目2行」<>「項目2行+1」 then
アウトプット用シートへコピー
集計用変数=0
End If
next
----追記-----
元データサンプル画像です。
![]
対象のキーとしたいのは「出庫日」及び「商品コード」になり集計項目は「出庫ケース数」「出庫バラ数」になります。
出庫日毎の商品明細を一表にまとめ印刷する仕組みを考えております。
出庫日(ヘッダー)が変わると印刷し、明細項目をクリアする。
また、別の表では「出庫日」「コード」をヘッダー情報として改ページして「商品コード」と「出庫ケース数」「出庫バラ数」を明細として一表にまとめ印刷
各別モジュールで考えております。
回答2件
あなたの回答
tips
プレビュー