A B C D
数量 単価 金額
2009/10/4 26 43 \1,118
2009/11/12 23 300 \6,900
2009/11/25 30 150 \4,500
2010/1/27 12 80 \960
2010/1/28 17 210 \3,570
の様なデータがあったときに
A列を「セルの書式の書式設定]でYYYY"年"MM"月"形式にして
「データ」→「集計」で月次ごとの集計をしています。
今回のデータでは12月分のデータがないため
このままでは昨年以前のデータとの集計でずれが出てしまいます。
12月分の空データを入れる以外に
集計表でのデータの補完が出来るようにはできませんか?
VBA初心者ですがよろしくお願いします。
No.2ベストアンサー
- 回答日時:
飛んでいる「月」の分の空データーを挿入するVBAです
1.日付(A列)はソートされている事
2.データーの最後は、空セルである事
3.途中(A列)に空セルがない事
といった制限は有ります...
------------------
Sub Mac1()
lp = 2
mb = Month(Cells(lp, 1))
yn = Year(Cells(lp, 1))
lp = lp + 1
Do Until Cells(lp, 1) = ""
Select Case Month(Cells(lp, 1))
Case mb
lp = lp + 1
Case mb + 1
mb = mb + 1
lp = lp + 1
Case Else
If mb = 12 Then
If Month(Cells(lp + 1, 1)) = 1 Then
mb = 1
lp = lp + 1
Else
mb = 0
yn = yn + 1
End If
End If
Rows(lp & ":" & lp).Insert Shift:=xlDown
mb = mb + 1
Range("A" & lp).FormulaR1C1 = mb & "/1/" & yn
Range("B" & lp).FormulaR1C1 = "0"
Range("C" & lp).FormulaR1C1 = "0"
Range("D" & lp).FormulaR1C1 = "0"
lp = lp + 1
End Select
Loop
End Sub
-----------------------
早々の回答ありがとうございます。
自分のしたいことに近いので参考にさせて頂くと同時に
良回答とさせて頂きました。
また自分の知らないコードには勉強になりました。
別件ですが
空データを入れることで
ゼロの除算をしたり最小値が0になったりしました。
まだまだ勉強しなければいけませんが
今後もよろしくお願いします
No.1
- 回答日時:
こんにちは。
回答にあたり幾つか不明な点があります。
集計は「データ」→「集計」の方法・機能ではならないといけないのでしょうか?
書式だけ同じならばと言うことであれば
Sub sample()
Dim I As Integer, I2 As Integer
I = 3
I2 = I - 1
Do While Range("A" & I).Value <> ""
If Month(Range("A" & I).Value) <> Month(Range("A" & I - 1).Value) Then
Rows(I & ":" & I).Insert Shift:=xlDown
Range("A" & I).Value = Year(Range("A" & I - 1).Value) & "年" & Month(Range("A" & I - 1).Value) & "月 合計"
Range("D" & I).Formula = "=SUM(D" & I2 & ":D" & I - 1 & ")"
I = I + 2
I2 = I - 1
Else
I = I + 1
End If
Loop
Range("A" & I).Value = Year(Range("A" & I - 1).Value) & "年" & Month(Range("A" & I - 1).Value) & "月 合計"
Range("D" & I).Formula = "=SUM(D" & I2 & ":D" & I - 1 & ")"
End Sub
でも同じ書式にはなります。
12月分の空データを入れることでどのような不具合が発生するのでしょうか?
空データを入れることで容易に処理をすることが出来るかと思いますが・・・。
「データ」→「集計」の場合、仮に仮想12月データがあったとして行を「表示しない」にしていても表示できてしまうというのが問題なのでしょうか?
尚、仮想12月データを入れ該当行を「表示しない」にして上記コードを実行すると仮想データは表示されませんが12月の集計は出ます。
質問のサンプルにはありませんが、もし2009年12月~2010年1月のデータが無い場合を想定すると若干VBAが複雑になります。
早々の回答ありがとうございます。
空データを入れたくないのは
マスターデータを集計用のシートにコピーして
VBAで集計しているためです。
(マスターデータには余分なデータ、手間を入れたくないので)
言葉足らずで申し訳ありませんでた。
別件ですが
空データを入れることで
ゼロの除算をしたり最小値が0になったりしました。
まだまだ勉強しなければいけませんが
今後もよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 数行を1組とする300組ほどあるデータの項目を揃えたいです。 3 2023/01/26 19:38
- Visual Basic(VBA) VBA 毎日取得するデータを順番に反映していく方法 6 2023/08/26 16:22
- Excel(エクセル) エクセルで年月ごとの売り上げを集計する方法を教えてください 7 2022/06/01 17:06
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Visual Basic(VBA) VBA 連続する名前ごとに集計 3 2022/05/21 18:24
- Excel(エクセル) アウトラインの小計のやり方 1 2023/03/20 11:51
- Excel(エクセル) EXCEL値貼り付け(ある条件のもと自動化) 5 2023/06/06 12:21
- Excel(エクセル) 非表示にしたい行をグループ化して折り畳み 4 2022/09/17 20:17
- Visual Basic(VBA) VBAで自動集計(特定セルコピー月ごとに値貼り付け)したい。 6 2023/06/25 11:37
- 統計学 t値の計算方法 1 2022/11/29 18:37
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】看板の文字を埋めてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フィルタをしても最下行を常に...
-
【エクセル】オートフィルタで...
-
ピボットテーブルでは時間の表...
-
ピボットを更新すると数式が入...
-
エクセルで特定の色の数字だけ...
-
VBAで重複する項目を1つにまと...
-
Excelの集計結果だけをコピー貼...
-
EXCEL 重複データの集計の仕方
-
エクセル 最小値を求める関数...
-
オートフィルタ で抽出した結果...
-
常にタイトル行と合計行を表示...
-
ピボットテーブルの自動計算を...
-
エクセルの小計を自動的に色づ...
-
EXCELで増減率を計算したいです
-
ピボットテーブルのページエリ...
-
ピボットの集計方法「合計」初...
-
いい機能だけど、毎回めんどく...
-
アンケートの集計
-
エクセル 関数を使った横方向の...
-
エクセルで円グラフに引き出し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【エクセル】オートフィルタで...
-
ピボットテーブルでは時間の表...
-
フィルタをしても最下行を常に...
-
エクセルで特定の色の数字だけ...
-
VBAで重複する項目を1つにまと...
-
ピボットを更新すると数式が入...
-
ピボットの集計方法「合計」初...
-
エクセル 関数を使った横方向の...
-
アンケートの集計
-
excelで集計の合計を降順に並べ...
-
EXCELで増減率を計算したいです
-
ピボットテーブルのページエリ...
-
ピボットテーブル作成後、集計...
-
いい機能だけど、毎回めんどく...
-
Excelの集計結果だけをコピー貼...
-
ピボットテーブル最終行から2...
-
常にタイトル行と合計行を表示...
-
EXCELで0を除いた平均値...
-
エクセル、リソース不足エラー...
-
複数のピボットテーブルを一括...
おすすめ情報