Excel VBA質問箱 IV

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

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


7043 / 13646 ツリー ←次へ | 前へ→

【41457】決まったセルまでの合計の出し方 おぐり 06/8/10(木) 22:12 質問[未読]
【41459】Re:決まったセルまでの合計の出し方 Kein 06/8/11(金) 1:02 回答[未読]
【41583】Re:決まったセルまでの合計の出し方 おぐり 06/8/14(月) 23:44 お礼[未読]

【41457】決まったセルまでの合計の出し方
質問  おぐり  - 06/8/10(木) 22:12 -

引用なし
パスワード
   みなさんおしえてください。

データをまとめているのですが
A  B            N
4月 5月・・・・・・・・・ 3月
120 200          120
150 300          380
780 560          280

という感じで入ってあります。
今は4月の合計情報がほしいとき、検索で4月を探し出し
=offset(1)+offset(2)+offset(3)と書いています。
しかし半期や四半期の合計がほしいとき
offset()をいくつも書いているととても面倒なんです。。。

1月から3月までの四半期分合計を知りたいとき
1月を検索し、N列offset(2,1)+offset(2,2)+offset(2,3)までの合計を出す
また
10月から3月の半期分の合計を知りたいとき
10月を検索し、N列offset(5,1)+offset(5,2)+offset(5,3)までの合計を出す

検索した月からN列までの合計を出すにはどう書いたらよいでしょうか?

【41459】Re:決まったセルまでの合計の出し方
回答  Kein  - 06/8/11(金) 1:02 -

引用なし
パスワード
   確認ですが月は「A1=1月・・・L1=3月」と入力されていて、
N2以下に横の合計を出す。という形にしたいのですね ?
それならこんな感じでどうでしょうか ?
任意の月の間の計を出せますが、例えば3月(翌年の)から
5月(今年の)までの計は出せません。つまり

「一回目に出てくるInputBoxに入れる月は、一行目の並び順において、
あくまで二回目に出てくるInputBoxに入れる月よりも左になければならない」

という条件が付きます。
あと、合計する行範囲はA列の最大入力行を基準とします。

Sub MyTotal()
  Dim Stm As Integer, Lsm As Integer
  Dim LR As Long
  Dim x As Variant, y As Variant
  Const Pmt As String = _
  " 1〜12 の数値で入力して下さい"
 
  With Application
   Do
     Stm = .InputBox("合計する初めの月を" & Pmt, Type:=1)
     If Stm = False Then Exit Sub
   Loop While Stm < 1 Or Stm > 12
   Do
     Lsm = .InputBox("合計する最後の月を" & Pmt, Type:=1)
     If Lsm = False Then Exit Sub
   Loop While Lsm < 1 Or Lsm > 12
   x = .Match(Stm & "月", Rows(1), 0)
   y = .Match(Lsm & "月", Rows(1), 0)
  End With
  If IsError(x) Or IsError(y) Then
   MsgBox "該当する月が見当たりません", 48: Exit Sub
  End If
  If x > y Then
   MsgBox "指定した月の列順では計算できません", 48: Exit Sub
  End If
  LR = Range("A65536").End(xlUp).Row - 1
  Range("N:N").ClearContents
  Range("N2").Resize(LR).FormulaR1C1 = _
  "=SUM(R[0]C" & x & ":R[0]C" & y & ")"
  With Range("N1")
   .Value = Stm & "月〜" & Lsm & "月の計"
   .EntireColumn.AutoFit
   Application.Goto .Cells(1), True
  End With
End Sub

【41583】Re:決まったセルまでの合計の出し方
お礼  おぐり  - 06/8/14(月) 23:44 -

引用なし
パスワード
   ありがとうございました!
無事に解決しました。

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