VBAで1年間の売上をマクロで集計する方法

このQ&Aのポイント
  • VBAを使用して、一年間のりんごとみかんの売上金額をトータルで計算する方法について教えてください。
  • 期初月から指定した日付までの売上金額を集計するため、InputBoxで指定した日付を入力することで対象期間を指定します。
  • 例えば、InputBoxに「2012/04」と入力した場合は、B列の「2011/06」から「2012/04」までの期間において、りんごの売上金額を総合計して表示します。
回答を見る
  • ベストアンサー

VBA 1年間売上トータルをマクロで集計

A(エリア) B(日付)  C(商品)  D金額 東京   2009/09    みかん    210 東京   2011/09    みかん    210 大阪   2011/06    りんご    150 東京   2011/07    りんご    200 東京   2011/08    みかん    170 大阪   2011/10    みかん    140 東京   2011/11    みかん    110 東京   2012/03    みかん    190 大阪   2012/04    りんご    200 東京   2012/05    りんご    220 【やりたいこと】 1年間のりんごの売上とみかんの売上のトータルをマクロで 計算したいと思っています。 一年間の区切りは、期初(スタート)月:6月 締め月:5月です。 ただし、1年間といっても指定した日付までのトータル金額を出したいのです。 例1)InputBoxで「2012/04」と入力した場合は B列の「2011/06」~「2012/04」かつC列がりんごの金額の総合計を出す。 というようなイメージです。 例2)InputBoxで「2011/06」と入力した場合は B列の「2011/06」~「2011/06」かつC列がりんごの金額の総合計を出す 例3)InputBoxで「2010/02」と入力した場合は B列の「2009/06」~「2010/02」かつC列がりんごの金額の総合計を出す 恐れ入りますがどたなかご教示頂ければ幸いです。 どうぞよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • TAKA_R
  • ベストアンサー率32% (26/79)
回答No.1

こんな感じかな。 forのところはsumproductを使おうと思ったんだけど、思い通りに動かなかったので。 Sub 計算() Dim str, st As String Dim dt(2) As Date Dim a, b Dim c As Long str = InputBox("集計終わりの年月を書いてください" & vbCrLf & "例:2011/08", "集計用") st = "みかん" If str <> "" Then a = Val(Left(str, 4)) b = Right(str, 2) If Val(b) < 6 Then a = a - 1 dt(0) = CDate(a & "/06") dt(1) = CDate(str) End If For k = 1 To Range("a1000").End(xlUp).Row dt(2) = Range("b" & k + 1) If dt(0) <= dt(2) And dt(1) >= dt(2) Then If Range("c" & k + 1) = st Then c = c + Range("d" & k + 1) End If Next Range("g1") = c End Sub

nanacolobiyaoki
質問者

お礼

ありがとうございました!!! かっ・・感動の一言ですO(≧▽≦)O !! おかげさまで正確な値を得ることができました。 このたびは本当にありがとうございました。

関連するQ&A

  • VBA SUMPRODUCTについて2

    A     B     C    東京  みかん  200 大阪  りんご   150 愛知  りんご   200 愛知  みかん  170 東京  みかん  190            390(←出したい値:atai)           【やりたいこと】 A列が「東京」で、B列が「みかん」のC列の合計を出したいです。 つまり、200+190 = 390 下記、書いてみたのですがatai(値が0)になります。 ※本来は390と出したいところです。 何が間違っているのでしょうか? --------------------------- Sub monthResult2() Dim ans As String ans = "東京" atai = Evaluate("SUMPRODUCT((A1:A5= ""& ans &"" )*(B1:B5= ""みかん"") * C1:C5)") Range("C7") = atai End Sub ------------------- ""& ans &"" を ""東京"" とすれば正しい答え「390」が出てきます。 ans は変数で使いたいので固定で指定したくありません・・。 どうぞよろしくお願い致します。

  • VBA SUMPRODUCTについて3

    A     B     C    東京  みかん1  200 大阪  りんご3  150 愛知  いちご2  200 東京  みかん2  170 東京  いちご1  190            560(←出したい値:atai) 【やりたいこと】 A列が「東京」で、B列が「みかん」または「いちご」の文字列を含む C列の合計を出したいです。 つまり、200+170 +190 = 560 下記、書いてみたのですがatai(値が#VALUE!)になります。。 ※本来は560と出したいところです。 何が間違っているのでしょうか? --------------- Sub monthResult3() Dim ans As String ans = "東京" atai = Evaluate("SUMPRODUCT((A1:A5= """ & ans & """ )*((B1:B5 Lile ""*みかん*"")+(B1:B5 Lile ""*いちご*"")) * C1:C5)") Range("C7") = atai End Sub

  • エクセルマクロ 特定の文字列を含む行を削除

    マクロについて教えてください。 以下のなかから、りんごを含んでいる行のみ削除したいのです。 できれば、inputboxで削除したい文字列を入力するようにしたいです。 1|りんご|30 2|みかん|50 3|りんご|30 4|すいか|30 5|みかん|50 いろいろ調べましたがわかりません。。お願いします。

  • エクセル VBA マクロについて

    初めまして。 以下のようなマクロを組みたいんですが可能でしょうか?  A     B     C    D    E    F 東京   足立区 みかん  10   5   50       葛飾区 みかん  20   3   60        港区  りんご  30   1   30 小計                       140 ( 空白行   ) 愛知  名古屋市 みかん  10   5   50      東海市    もも   10   5   50 小計                       100 上記のようなデーターシートがあります。 Dには数字が入ってるんですが、 ここに係数をかけたいんです。 たとえば、=10*1.07 とか (1)元の値に係数かける式をセルに入れるマクロはあるんでしょうか? (2)この係数を別シートのセルで入力したいんですが セルを参照できますか? (3)みかん、もも、りんごの列を検索して、  それに対応した係数かけるマクロはあるんでしょうか? 処理速度は、とくにはこだわりません。 ご指導おねがいいたします。

  • VBAマクロ作成について

      A  B  C -------------- 1 ○○ 123 456 --------------- 2 □□ 789 123 --------------- 3 △△ 456 789 -------------- 上記のような表でInputBoxを使い「○○」と入力すると同じ行のB列「123」とC列「456」 「□□」なら「789」「123」のように値を取得し、変数に代入するような マクロを作成したいのですが、どのように記述すれば良いでしょうか。 初歩的な質問ですが、宜しくお願いいたします。

  • Excel2003でデータの集計をしたいのですが

    下記のようなデータがあるときに日別店舗別商品別の個数の集計表を作成したいのですが。 日付 店舗 商品 個数 1/1 東京 りんご 1 1/1 大阪 みかん 2 1/1 東京 りんご 3 1/2 東京 みかん 4 1/3 東京 りんご 5 1/3 大阪 なし 6 1/3 大阪 りんご 7 1/3 東京 りんご 8 ↓ 集計 1/1 東京 りんご 4 1/1 大阪 みかん 2 1/2 東京 みかん 4 1/3 東京 りんご 13 1/3 大阪 なし 6 1/3 大阪 りんご 7 ピポットテーブルで処理しようとしましたが、うまくいきません。 よい方法はないでしょうか?

  • エクセルVBA 年月で集計したい

    お世話になります。 下記の様にシート1に入力した値をボタンで シート2の集計シートの該当年月に加算させたいたいのですが、 年月で振り分ける方法が分かりませんでした。 ●シート1(個数入力)   A     B    1      H24/12/25 2りんご    1 3みかん    2 4ばなな    3 5すいか    4      ⇒GOボタン ●シート2(年月毎の集計)   A     B      C      D    1     24年10月 24年11月 24年12月 2りんご   0      1 3みかん   0      2 4ばなな   0      3 5すいか   0      4 シート1のB1の日付の年月とシート2のB1の年月が一致したら、値をB2~B5に加算 一致しなければ、C1、D1 という感じで考えております。 IF文の条件式がどのようになれば良いか教えていただけないでしょうか? 分かりづらくて申し訳ございませんが、よろしくお願い致します。 エクセルは2000を使用しております

  • 数量を足すマクロ

    A列に商品名があり、B列に数量があります。 A列はあいうえお順に並んでいます。 A列には重複した商品名があり、重複した商品名の数量を足すことはできないでしょうか。 例 A---------B みかん   8 みかん   9 りんご   10    ↓ 結果として、 A----------B みかん   17 りんご   10 にしたいのですが、ずっと考えていても答えが導け出せないので質問しました。 よろしくお願いします。

  • EXCEL 集計の方法

    おせわになります。 EXCELにあるデータを集計したいのですが、「集計」機能では対応できませんので、何か良い方法がありましたらお知らせくださいますようお願いいたします。 ------------------------------------------ A列    B列  C列 ○○会社 りんご 1500円 ○○会社 みかん 1000円 ○○会社 みかん 1000円 △△会社 りんご 1500円 △△会社 みかん 1000円 ------------------------------------------ というデータがあったとします。 今回はB列ごとに集計するのではなく、 A列ごと、B列ごとの集計です。 つまり、 ○○会社 りんご1500円 ○○会社 みかん2000円 と、いうことです。 何かよい方法はありますでしょうか? よろしくおねがいします。    

  • エクセル詳しい方おしえてください

    ABC列にデータを入力して全ての列に入っているデータのみ抽出するにはどうしたらいいですか 例 A B C りんご みかん りんご みかん バナナ みかん バナナ →この場合抽出結果をみかん としたいです 列の表示がずれますがなんとなくでみてくださいm(_ _)m よろしくおねがいします