Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


71406 / 76732 ←次へ | 前へ→

【9820】こんな合計の出し方って・・・
質問  翡翠  - 03/12/17(水) 17:48 -

引用なし
パスワード
   ダウンロードしたデータの小計金額と合計金額の値をSUM関数に置き換えたいのですが、うまくできないので、ご教授願います。

                 商品1    商品2
北海道        旭川    5,360     32,130
北海道        札幌    19,190     77,750
---------------------------------------------
北海道計             24,550     109,880
---------------------------------------------
東北        仙台    1,710     33,870
東北        山形    3,580     23,300
東北        秋田    2,270     27,750
---------------------------------------------
東北計             7,560     84,920
=============================================
地区合計(あ)        32,110     194,800
=============================================
デパート       Cデパート    14,050     67,150
デパート       Dデパート    28,980     77,800
---------------------------------------------
デパート計(い)        43,030     144,950
---------------------------------------------
コンビニ       コンビニE    23,240     13,590
コンビニ       コンビニF    16,580     20,400
---------------------------------------------
コンビニ計(う)        39,820     33,990
=============================================
合計(あ+い+う)        114,960     373,740
=============================================

ダウンロードしたデータには小計金額と合計金額が値で既にあるので、EXCEL集計機能では不具合が生じます・・・

2箇所の合計欄には =SUM(C4,C11,C19) のような数式に置き換えるのを目標にしています。

**************************************************************************
Sub TEST()
  
  Dim MaxRow As Long
  Dim i As Long
  Dim j As Integer
  Dim k As Long
 
  MaxRow = Range("A65536").End(xlUp).Row
  
  LastColumn = Range("C4").End(xlToRight).Column
  
  For i = 4 To MaxRow
    If Right(Cells(i, 1).Value, 1) = "計" Then

      For j = 3 To LastColumn
        Cells(i, j).FormulaR1C1 = "=SUM(R[-1]C:R[-" & k & "]C)"
      Next
      
      k = 0
      
    ElseIf Right(Cells(i, 1).Value, 1) = "合計" Then

      For j = 3 To LastColumn
        Cells(i, j).FormulaR1C1 = "=SUM(???)"
      Next
      
      k = 0

    Else
      k = k + 1
    End If

  Next

End Sub
**************************************************************************

"計"の部分はきちんとSUM関数に置き換えられます。条件分岐するつもりで「ElseIf節」を使ってみましたが、上記「???」部分が妙らしく循環エラーになってしまいます。
「???」部分は、=SUM(C4,C11,C19) のような結果を複数列にわたって反映させるR1C1の書き方がわからないので、本投稿にあたり「???」で代替しています。

1 hits

【9820】こんな合計の出し方って・・・ 翡翠 03/12/17(水) 17:48 質問
【9842】Re:こんな合計の出し方って・・・ Jaka 03/12/18(木) 13:59 発言
【9844】Re:こんな合計の出し方って・・・ Kein 03/12/18(木) 14:24 回答
【9847】Re:こんな合計の出し方って・・・ 翡翠 03/12/18(木) 17:05 お礼

71406 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free