重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

EXCEL2003で、
・商品ID ・商品名 ・支店 ・在庫数 ・在庫金額 ・販売開始日
を商品IDごとに在庫数と在庫金額の集計を行いました。
行数は約1万、集計行は約1千あります。
ここまでは問題なく出来たのですが、
集計行には、商品ID集計として、在庫数と在庫金額の合計しかなく、
集計行のみにした場合、商品名と販売開始日が表示されません。

集計行に、商品名と販売開始日を追記するマクロを書きたいのですが
(関数でもかまいません)、どなたかお知恵をお借りできませんでしょうか。

よろしくお願いいたします。

A 回答 (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列の最終行には【総計】という文字があること。
集計コマンドを実行すると必ず最後に【総計】が表示されますので
問題はないと思いますが。。
以上。
 
    • good
    • 0
この回答へのお礼

このたびはご回答ありがとうございました。
無事集計行に表示させることが出来ました。
また、いい勉強になりました。
重ねて御礼申し上げます。
ありがとうございました。

お礼日時:2009/01/16 16:23

こんにちは。



集計とはエクセル標準でついている集計機能のことなのであれば
マクロなしでも以下の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以外に商品名も
表示されるようになり、販売開始日も表示されます。
販売開始日も集計してしまう、というのがポイントでしょうか。

ピポットテーブルの方が早いかもしれませんが、
ご参考まで。
   
    • good
    • 0
この回答へのお礼

お忙しいところ、お時間を割いていただきまして
誠にありがとうございました。
今後また、お伺いすることもあると思いますが、
その際はどうぞよろしくお願いいたします。

お礼日時:2009/01/16 16:17

ピボットテーブルで試してみては



Excel(エクセル)実用編:家計簿の作成(ピボットテーブルを使う)
http://www.eurus.dti.ne.jp/~yoneyama/Excel/jituy …
    • good
    • 0
この回答へのお礼

このたびは、ご回答ありがとうございました。
結果、ピボットテーブルは利用しなかったのですが、
勉強のいい機会になりました。
今後もどうぞよろしくお願いいたします。

お礼日時:2009/01/16 16:19

ピボットテーブルはどうでしょう?

    • good
    • 0
この回答へのお礼

このたびはアドバイスありがとうございました。
これを機会に、もっと勉強しようと思います。
今度ともどうぞよろしくお願いいたします。

お礼日時:2009/01/16 16:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!