• ベストアンサー

VBAで月計を出す方法

現在下記のような表があります。      A     B   1| 5月1日 6800  2| 5月2日 3500    ・    ・    ・ 31|5月31日 4800 32| 6月1日 5000    *A、B、1|、2|などはセル番号 このような表が続いており、月ごとに合計を出したいのですが、 どのようにしたら良いでしょうか。

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.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

jellya_a
質問者

お礼

ありがとうございます。 一度試してみたいと思います。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • x0000x
  • ベストアンサー率52% (67/127)
回答No.2

#1です。 >数値はフォームに値を入れることによって、セルに入ります。 >ちなみに、値の入ったシートは見えなくなっています。 み…見えないシートの月合計ですか? 見えないシートは「書式」「シート」「再表示」で表示することは可能? シートが見えないと、合計も何もできないかも。

jellya_a
質問者

補足

フォームのボタンを押すことによって、 日付を読んで、月ごとに計算して フォームか、別シートに出してくる形にしようと考えてます。

全文を見る
すると、全ての回答が全文表示されます。
  • x0000x
  • ベストアンサー率52% (67/127)
回答No.1

今晩は。 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月の合計が求まります。

jellya_a
質問者

お礼

ありがとうございます。 ただ、私の説明が足らなかったみたいです。 数値はフォームに値を入れることによって、 セルに入ります。 ちなみに、値の入ったシートは見えなくなっています。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 月を指定してデータを抽出する

    下記のようなデータから(テーブル)     A     B      C      D 1  年月日  会社名  商品名   金額 2 10月27日  A社   リンゴ    5000 3 10月29日  B社   みかん   8000  4 11月1日   A社   バナナ   1000 5 11月2日   C社   みかん   4000 6 11月3日   B社   ぶどう   10000 下記のような別シートの見出しのB1セルを参照して。フィルタオプションで11月のデータだけを下記のA6:D9セルのように抽出するには抽出条件のA4セルにどのような関数を入れたらよいのでしょうか?     A      B    C      D 1 平成22年  11月  売上表 2 3 年月日 4  5 6 年月日   会社名  商品名   金額 7 11月1日   A社   バナナ   1000 8 11月2日   C社   みかん   4000 9 11月3日   B社   ぶどう   10000 A4セルに条件を入れなくても抽出できる方法でも結構です。 エクセルは2010です。 教えていただける方がおりましたらよろしくお願いします。

  • 成績管理表の作成方法

    先日から質問させて頂いています。 作成の方向性が決まりましたので、関数のご教授願います。 職場で成績管理表を作成しています。 エクセル2003です。 下記表に数式を入れたいのですが・・・ チャレンジしましたが、うまくいきません。 年間成績表 *年を表示したら、1年分の日付を自動にしたい。(カレンダー) *このシートに1年分の成績データを入力する事で、  以下の表を自動計算させたい。 *(1)(2)(3)の様に項目別で例1例2の様にグループ別の表です。 2010年 例1 aさん bさん 例2 aさん bさん 4月1日(1)    (2)    (3) 4月1日(1)    (2)    (3) 4月1日(1)    (2)    (3) 省略 3月31日(1)     (2)     (3) 週間シート(日~土の今週を表示) 例2 3月14日   3月15日  省略 3月20日  週間合計    (1) (2) (3) (1) (2) (3)   (1) (2) (3) (1) (2) (3) aさん bさん 例2 3月14日   3月15日  省略 3月20日  週間合計    (1) (2) (3) (1) (2) (3)   (1) (2) (3) (1) (2) (3) aさん bさん 月間シート 例1 3月18日(今日の日) 月間合計  年間合計    (1) (2) (3)     (1) (2) (3) (1) (2) (3) aさん bさん 例2 3月18日       月間合計 年間合計    (1) (2) (3)     (1) (2) (3) (1) (2) (3) aさん bさん 月間シート 例1 4月    5月 省略 3月    年間合計 (1) (2) (3) (1) (2) (3)   (1) (2) (3) (1) (2) (3) aさん bさん 例1 4月    5月 省略 3月    年間合計 (1) (2) (3) (1) (2) (3)   (1) (2) (3) (1) (2) (3) aさん bさん

  • エクセルで二つの表から数値をそれぞれもってきて自動計算する方法

    タイトルどおりなんですが、 Aさん、Bさんがそれぞれ毎日の自分の仕事の数値をエクセルに記録しています(下記参照、数字がずれてるのはご容赦ください) Aさん a  b  c  合計   Bさん a  b  c   合計 1日 8 10 3  21   1日 2  1  0    3 2日 5  0 4   9   2日 20 0 25   45 合計         30   合計           48 それを今度はa,b,cごとの表を普段は手書きで紙に合計してから、別の表に移しています。     a   b  c  合計 1日 10 11  3  24 2日 25  0  29 54 合計           78  という具合です。 今は画面に二つの表をだして、紙に合計(1日のAさんa+Bさんa)を印刷した白紙の表に書き出してから 別のエクセルの表に打ち込んでいました。合計は自動で計算するようになっています。 それを自動でできるようにできないでしょうか? ちなみにエクセルの表はすべてバラバラです(3つのファイルがあるという事です) ややこしい書き方でわかりにくいかと思いますが、ご教授ください。

  • Excel 2列のデータを合計して1列にするには

    以下のような表1があります。 コード 摘要    収入     A    B    C    D    E    F 1  1月  1日   1月   2日   1月   3日 2    1    1    2    2    3    3 例えばAとBは1月1日のデータで、2列目には数値データが入っています。この場合1月1日の合計値は2です。 このシートを元にして     A     B     C 1 1月1日 1月2日 1月3日 2   2     4     6 上記のような表2を作成したいと思いますが、オートフィルのコピーでは1列ずつ合計されていくのでうまくいきませんでした。 表1の日付の表記は、1セルに「n月n日」となるよう変更することは都合上できません。 簡単に表が作れる方法があれば教えて下さい。よろしくお願いします。

  • VBAで範囲選択して合計して罫線を引く方法

    過去の投稿を見て、似たような物を見つけても どうしても応用ができません。 重複してしまっているかもしれませんが 宜しくお願い致します。 集計表の一番下にその月が20〆だったら 20 と入力します(例:A37に20と) すると、21日であるB24から月末のB34の合計が B37に計算され(来月送りの合計) 20日であるB23のセルの下線又は 21日であるB24のセルの上線が1ptの赤線になる という自動処理ができるようにしたいのです。 曜日によって18日〆になったり 25日〆になったり いろいろなので 自動でできると楽になると思いました。 (月末は毎月31日のB34で構いません) どうぞよろしくお願い致します。

  • シートの表に簡単に入力する方法

    現在は手動でそのセル毎に入力しています。 皆さんのお知恵をお借りして省力化したいと願っています。 当方は XP EXCEL2003です。 下記のようなシートが12枚(1~12月)あります。   A   B    C D E AH 1 顧客ID 顧客名 合計 1日  2日 ~ 31日 2 001 A社  10,000 10,000 3 002  B社 4 003 C社 180 181 X社      合計 10,000 10,000 0 0 この場合、「顧客ID」「日付」「数値」の3点をシートの表に入力する カードがあってOKボタンをクリックしたら表に入力される方法がありませんか。 例 「顧客ID」001 「日付」1日 「数字」10000と入力してOK しますと 上の表に入力されるカードみたいなもの。 余り詳しくない小生ですがどうぞよろしく御願いします。

  • EXCELのVBAで連続コピーの方法をお願いします

    1月    1日  2日   3日  4日   加藤   午前  午後  午前  午後  (A2セル B2 C2 D2 E2セルに書込み) 鈴木   午後  午前  午後  午前  (A3セル B3 C3 D3 E3セルに書込み) SHEET1にエクセルの表を作成した後にSHEET2のA1からコピーをしSHEET1のデータは消し、次に SHEET1に2月の表を作成した後にSHEET2の1月の最後の次にコピー(すなわちA4) 以後3・4・5月と連続してコピーしたいのです。ひとことで言いますと1月から作成したリストを連続で残して置きたいのです。 宜しくお願いいたします。 エクセルは2007 と2003両方でお願いします 表現が悪くてすいません

  • 日付表示の月が替わったら表示しない方法は?(エクセル)

    日付表示の月が替わったら表示しない方法は?(エクセル) 「処理日」A2セルに前月末日を入力すると月の日付が表示される計算式を入力しております。 (=前日セル+1) 31日までない月の「公開日」が次月になってしまった場合、 自動で表示しないような式または条件書式の方法を教えてください。 また、そのとき「処理日」も表示されないような方法もあわせてお願いします。 ※毎月1回、別名保存で内容を更新していくファイルです。     A           B   1  処理日         公開日 2  8月31日(手入力)   9月1日(=A2+1) 3  9月1日(=A2+1)    9月2日(=B2+1) 4  9月2日(=A2+1)    9月3日(=B3+1) 5   :            : 6   :            : :   :            : 31  9月29日(=A30+1)  9月30日(=B30+1) 32  9月30日(=A31+1)  10月1日(=B31+1) ←A32およびB32セルを表示させない

  • エクセル:日付単位での合計

    お世話になります。 A、B列に日付が入っています。 (A列に月、B列に日)C列に数値が入っています。 1日1行とは限らない。 同じ日付の最終行のD列にC列にある数値の合計を出す。(1日ごとの数値の合計) 途中に空白セルはない。 しかし後で行の挿入をする可能性があります。 例) A2~A50までは4→4月という意味 A51~は    5→5月という意味 B2~B5までは 1→1日という意味 B6~B8までは 2→2日という意味 B9~B12までは3→3日という意味 ・・・と続き B48~B50までは30→30日 この場合 4月1日の合計をD5に、4月2日の合計をD8、4月3日の合計をD12に入れる。(D2~D4は空白にする) A51からは5月になるのでD50には4月30日の合計を入れる。 4月1日の次に5月1日のデータが入力される可能性もあるので、日が変わる場合だけでなく月が変われば合計を出すことに対応したい。 また例えば行番号6に4月1日のデータがあとから挿入される場合にもきちんと合計が出るようにしたい。 よろしくお願いします。

  • VBAと印刷について

    VBAと印刷について エクセル2003で下記の表を作成しました。 月一回書類の確認日があり、 それを行った日をB列のどこか一つの セルに入力します。 そして、その表を月一回印刷します。 今後は印刷はマクロボタンでしたいのです。 ここで質問なのですが、例えば この表を印刷する際、 B列のどこか一つのセルに、「O月分書類確認」 の入力がなければ、印刷できないマクロボタンを 作成することはできるのでしょうか。 確認日は月一回と決まっています。どこの日の セルに入力するかは決まっていません。 ただ、月一回は必ずします。 翌月に決まります。 お願いします。

専門家に質問してみよう