個人事業主の方必見!確定申告のお悩み解決

1ヶ月の売上表があり、下記のように
日付毎の合計を、その日付の最終行に表示するのはマクロなどで可能でしょうか。

関数をセルにコピーしていたのですが、
最終行を探し、31日分コピーするのが不評です。
(下記では簡略化しておりますが、1日分の行数が何十行とあります。)

もっと簡単に出来ないのかと言われ、ご教授いただけると幸いです。

Excel2010です。
誰でも使用可能なように、シート名に依存しない仕様だと有難いです。

ご協力宜しくお願い致します。



A列       B列    C列   D列
2014/11/01  商品A  \1000
2014/11/01  商品B  \1200  \2200 ←11/1の合計 
2014/11/02  商品A  \1000  \1000 ←11/2の合計
2014/11/03  商品C  \1500 
2014/11/03  商品B  \1200  \2700 ←11/3の合計


2014/11/30  商品A  \1000
2014/11/30  商品A  \1000  \2000 ←11/30の合計

A 回答 (2件)

No.1です。


投稿後
>最終行を探し、31日分コピーするのが不評です。
を見逃していました。

前回の方法は最終行を気にすることなく、これ以上データはない!というくらいまであらかじめフィル&コピーしておいても大丈夫だと思いますが、

どうしてもVBAで!というコトであれば、一例です。
(VBAでもやっているコトは同じです)

Sub Sample1()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
If lastRow > 1 Then
Range(Cells(2, "D"), Cells(lastRow, "D")).ClearContents
End If
With Range(Cells(2, "D"), Cells(lastRow, "D"))
.Formula = "=IF(A2<>A3,SUMIF(A$2:A2,A2,C$2:C2),"""")"
.Value = .Value
End With
End Sub

※ 関数の場合はデータ変更時に即座に結果が表示されますが、
VBAだとその都度マクロを実行しなければなりません。m(_ _)m
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

何度もありがとうございました。
助かりました。

お礼日時:2014/12/11 20:15

こんばんは!


当然VBAで可能ですが、今回の場合は関数で大丈夫だと思います。
前提条件として、A列日付は昇順に並んでいるとします。

↓の画像でD2セルに
=IF(A2<>A3,SUMIF(A$2:A2,A2,C$2:C2),"")
という数式を入れフィルハンドルで下へコピーしています。

これで何とかご希望通りにならないでしょうか?m(_ _)m
「マクロで可能ですか。」の回答画像1
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

お礼日時:2014/12/11 20:14

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


人気Q&Aランキング