- ベストアンサー
EXCELの集計で悩んでいます
EXCEL2003で、 ・商品ID ・商品名 ・支店 ・在庫数 ・在庫金額 ・販売開始日 を商品IDごとに在庫数と在庫金額の集計を行いました。 行数は約1万、集計行は約1千あります。 ここまでは問題なく出来たのですが、 集計行には、商品ID集計として、在庫数と在庫金額の合計しかなく、 集計行のみにした場合、商品名と販売開始日が表示されません。 集計行に、商品名と販売開始日を追記するマクロを書きたいのですが (関数でもかまいません)、どなたかお知恵をお借りできませんでしょうか。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
方法はいくつかありますが簡単なサンプルをひとつ。 見出し: A1~F1 データ: 2行以降 A列に「ID番号 計」と表示されてるはずなので、 その「計」という文字を検索し ヒットしたら、そのひとつ上の行の「商品名」と「販売日」を ヒットした行の該当列に表示すればいいですね。 '----------------------------------------- Sub Test() Dim KeiCell As Range Dim myRange As Range Set myRange = Range(Cells(1, "A"), Cells(Rows.Count, "A").End(xlUp)) Set KeiCell = myRange.Find("計", , xlValues, xlPart) If KeiCell Is Nothing Then Exit Sub Do KeiCell.Offset(0, 1).Value = KeiCell.Offset(-1, 1).Value KeiCell.Offset(0, 5).Value = KeiCell.Offset(-1, 5).Value Set KeiCell = myRange.Find("計", KeiCell) Loop While KeiCell.Value <> "総計" End Sub '------------------------------------- 但し、A列の最終行には【総計】という文字があること。 集計コマンドを実行すると必ず最後に【総計】が表示されますので 問題はないと思いますが。。 以上。
その他の回答 (3)
- SePapa
- ベストアンサー率50% (47/94)
こんにちは。 集計とはエクセル標準でついている集計機能のことなのであれば マクロなしでも以下の5ステップで容易に対応は可能かと思います。 1)まずは一覧を商品ID昇順、販売開始日昇順で並びかえします。 2)商品名(列B)の横に商品ID(列A)と商品名を連結する列Cを追加し、 各セルには以下のような関数(文字の連結)を指定する。 ・2行目の場合の例 =CONCATENATE(A2," ",B2) ※後で、この列で集計することで、集計行に商品名も印字されます。 3)販売開始日(列G)の横に集計行表示用の販売開始日(列H)を追加し その列の各セルには以下の関数を指定する。 ・2行目の場合の例 =IF(A1<>A2,G2,"") ※1行目の商品ID(A列)と2行目が同じか比較し、 違うのであればIDが切り替わったとみなし同じ行の販売開始日(G列)の値を表示する。 それ以外は空白とする。 4)集計の設定で、集計グループは商品ID+商品名の列(列C)とする。 集計するフィールドは在庫数、在庫金額に加え、 集計行用の販売開始日列(列H)も集計する。 5)集計行の販売開始日のセルの書式設定を日付に変更する。 結果、集計行のみ表示した場合、商品ID以外に商品名も 表示されるようになり、販売開始日も表示されます。 販売開始日も集計してしまう、というのがポイントでしょうか。 ピポットテーブルの方が早いかもしれませんが、 ご参考まで。
お礼
お忙しいところ、お時間を割いていただきまして 誠にありがとうございました。 今後また、お伺いすることもあると思いますが、 その際はどうぞよろしくお願いいたします。
- gyouda1114
- ベストアンサー率37% (499/1320)
ピボットテーブルで試してみては Excel(エクセル)実用編:家計簿の作成(ピボットテーブルを使う) http://www.eurus.dti.ne.jp/~yoneyama/Excel/jituyou/kake-pib.htm
お礼
このたびは、ご回答ありがとうございました。 結果、ピボットテーブルは利用しなかったのですが、 勉強のいい機会になりました。 今後もどうぞよろしくお願いいたします。
- ASIMOV
- ベストアンサー率41% (982/2351)
ピボットテーブルはどうでしょう?
お礼
このたびはアドバイスありがとうございました。 これを機会に、もっと勉強しようと思います。 今度ともどうぞよろしくお願いいたします。
お礼
このたびはご回答ありがとうございました。 無事集計行に表示させることが出来ました。 また、いい勉強になりました。 重ねて御礼申し上げます。 ありがとうございました。