- ベストアンサー
マクロでの集計の仕方を教えてください
A:ARまでデータが入力されていて、I,AO,AQそれぞれの最終行に合計金額をいれたいのですが”マクロ”の記入の仕方がわかりません。是非教えてください。 また、AOの合計はAQの欄に済と入力されたものだけの合計を出したいのですが・・・!
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>I,AO,AQそれぞれの最終行に合計金額をいれたいのですが 入力した最終行の次の行に書き込んでみます。 I列は入力されたI列の値の合計を書き込んでいます。 AO列はSumIf関数を使っています。 AQ列に書き込んで意味があるのか分かりませんが、不要なら削除して下さい。 最終行を、Range("I65536").End(xlUp).Row で求めています。 シートのコードウインドウに貼り付けます。 ↓ Sub Total() Dim rw As Long '入力最終行 rw = Range("I65536").End(xlUp).Row With Application Range("I" & rw + 1) = .Sum(Range("I1:I" & rw)) Range("AO" & rw + 1) = .SumIf(Range("AQ1:AQ" & rw), "済", Range("AO1:AO" & rw)) Range("AQ" & rw + 1) = .Sum(Range("AQ1:AQ" & rw)) End With End Sub
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
計数は3行目から始まるものとしています。 変数宣言、字下げ、意味の取れる変数名とかを敢えて 省き,字数を少なくしました。 d=は表の範囲の行数を得ています。 Sub test01() t9 = 0: t41 = 0: t43 = 0 d = Range("I3").CurrentRegion.Rows.Count '---足しこみ For i = 1 To d + 2 t9 = t9 + Cells(i, 9) 'I列 '----- If Cells(i, 43) = "済" Then t41 = t41 + Cells(i, 41) 'AO列 End If '----- t43 = t43 + Cells(i, 43) 'AQ列 Next i '-----------合計をセルにセット- Cells(i, 9) = t9 Cells(i, 41) = t41 Cells(i, 43) = t43 End Sub
お礼
ありがとうございます。Cellsを今まで使っていないので、今回はNo2さんの回答で実行させていただきました。また教えてください。
- kazuhiko5681
- ベストアンサー率49% (79/159)
初めまして。I・AO・AQの最終行に合計金額を表示したいということですが、Iの最終行にI列の合計を表示させることでよろしいのでしょうか。 もし、違うのであればIにどの列の合計金額を表示させるのか教えて下さい。コピー&ペーストするだけですぐに動作するサンプルマクロを組んでみたいと思います。後AQは済という文字が入力されているようですが、この列の最終行にも合計を表示させるのでしょうか。その点についても教えて下さい。 お手数をおかけいたします。よろしくお願いいたします。
お礼
出来ました!有難うございます。また教えてください!