- ベストアンサー
VBAで月計を出す方法
現在下記のような表があります。 A B 1| 5月1日 6800 2| 5月2日 3500 ・ ・ ・ 31|5月31日 4800 32| 6月1日 5000 *A、B、1|、2|などはセル番号 このような表が続いており、月ごとに合計を出したいのですが、 どのようにしたら良いでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
SUMIF でいけるんじゃない? A 列が日付(時刻なし)で、B 列が金額だとすれば、次のような感じ で Sheet1 が非表示(Hidden または VeryHidden)でも問題なしかな。 あとは、考えてみて下さい。 Sub Sample() Dim dSum1 As Double Dim dSum2 As Double Dim dReturn As Double With Worksheets("Sheet1") ' // (A) 6/30 までの合計 dSum1 = Application.SumIf(.Columns("A"), _ "<=2007/6/30", _ .Columns("B")) ' // (B) 5/31 までの合計 dSum2 = Application.SumIf(.Columns("A"), _ "<=2007/5/31", _ .Columns("B")) End With '// (A)-(B) が 6/1~6/30 の合計となる dReturn = dSum1 - dSum2 MsgBox CStr(dReturn) End Sub
その他の回答 (2)
- x0000x
- ベストアンサー率52% (67/127)
#1です。 >数値はフォームに値を入れることによって、セルに入ります。 >ちなみに、値の入ったシートは見えなくなっています。 み…見えないシートの月合計ですか? 見えないシートは「書式」「シート」「再表示」で表示することは可能? シートが見えないと、合計も何もできないかも。
補足
フォームのボタンを押すことによって、 日付を読んで、月ごとに計算して フォームか、別シートに出してくる形にしようと考えてます。
- x0000x
- ベストアンサー率52% (67/127)
今晩は。 C1に「=month(A1)」を入力し、下にコピーします。 月別の識別情報が出来たので 後は、ピボットテーブルなどで求めては? あるいは、 D1に「=sumif($C$1:$C$100,"=5",$B$1:$B$100)」を入力することで5月の合計が求まります。 同様に D2に「=sumif($C$1:$C$100,"=6",$B$1:$B$100)」を入力することで6月の合計が求まります。
お礼
ありがとうございます。 ただ、私の説明が足らなかったみたいです。 数値はフォームに値を入れることによって、 セルに入ります。 ちなみに、値の入ったシートは見えなくなっています。
お礼
ありがとうございます。 一度試してみたいと思います。