• ベストアンサー

エクセル-過去6カ月分の合計を関数で計算したい

エクセルで下記のようなテーブルがあります。 4/1 500 4/1 300 4/2 600 . . 12/31 1000 日付ごとに数字が入っています。1日に1つの数字とは限りません。 これを今日遡って半年分だけ合計した数を、表示したいのですがどのような関数を書いたらよいでしょうか。 ファイルはどのタイミングで誰が開くかわからないため、常に今日から半年分(180日分)合計したいと思っています。 よろしくお願いいたします。

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

  • ベストアンサー
  • don9don9
  • ベストアンサー率47% (299/624)
回答No.4

No.2です。 私は未来日付のデータがあるとは想定していませんでしたが もし存在するならNo.3さんの回答のように 今日の日付より後の分を引いてやらなければいけません。 私がNo.2で書いた式はあくまで 「A列の日付が今日の日付の180日前の日付より後になっている行の B列の数値を集計する」という式ですから。 なお、質問は「今日を含めて180日分」ということでしたので 「ちょうど180日前の日付」は含めないようにしています。 今日を含めて3日分、と言う場合、2日前・1日前・今日で 3日分になりますよね。それと同じ考え方です。 余談ですが、No.3さんの回答の >DATE(YEAR(TODAY()),MONTH(TODAY()-6),DAY(TODAY())) の部分は DATE(YEAR(TODAY()),MONTH(TODAY())-6,DAY(TODAY())) の間違いではないかと…

necoxx11
質問者

お礼

基本的に未来の日付が入ることはないのですが、誰もが使うファイルの場合はいろいろなことを考えておかないといけないのですね。 わかりやすいご説明をありがとうございます。

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

その他の回答 (4)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

こんばんは! 色々方法が出ていますが、 他の一例です。 当方使用のExcel2003の場合ですが、EDATE関数を使っていますので メニュー → ツール → アドイン → 「分析ツール」にチェックを入れておく必要があります。 A2から行方向に日付、B2から行方向に数値が入力してあるとします。 とりあえず1000行目まで対応できる数式です。 表示させたいセルに =SUMPRODUCT((A2:A1000>=EDATE(TODAY(),-6))*(A2:A1000<=TODAY())*(B2:B1000)) としてみてはどうでしょうか? 数式内のEDATE関数は大の月・小の月関係なく、今日から「-6ヶ月」という事になりますので 2009年9月2日以降のデータを集計しています。 以上、参考になれば幸いですが 的外れなら読み流してくださいね。m(__)m

全文を見る
すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

六ヶ月前ですが月で6か月前の今日の日付とするのならば =SUMIF(A:A,">="&DATE(YEAR(TODAY()),MONTH(TODAY()-6),DAY(TODAY())),B:B)-SUMIF(A:A,">"&TODAY(),B:B) 単に本日より180日前からでしたら =SUMIF(A:A,">="&TODAY()-180,B:B)-SUMIF(A:A,">"&TODAY(),B:B)

necoxx11
質問者

お礼

検索条件の部分がうまく記入できなかったのですが、このように考えればいいいんですね。 ほかのことにも応用できそうです。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • don9don9
  • ベストアンサー率47% (299/624)
回答No.2

A列が日付、B列が数字の場合 =SUMIF(A:A,">"&TODAY()-180,B:B) でいいと思います。

necoxx11
質問者

お礼

簡単な関数で、とてもわかりやすいです。 思っていた結果を表示することができました。 ほかにも悩んでいた関数にも利用できそうです。 ありがとうございました。

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

今日の日付から180日前なら =now()-180 で算出できますね、今日10/3/2の180日前なら 9/9/3 と計算できますから、それに相当する セルを探し出し、データー項目をsum()で 合計すれば良さそうですが、searchやfindも 使えばつくれそうですが、関数だけでなく マクロの範疇になりそうです。

necoxx11
質問者

お礼

自分以外の人に引き継ぐこともあるので、なるべく簡単で短い関数を使いたいと考えています。 マクロはなるべく使いたくないのですが、自分専用のファイルならいいかもしれません。ありがとうございました。

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

関連するQ&A

  • エクセルの加算で、増加分のみ計算

    エクセルの足し算で、単純に足し算ではなく、増えた数の合計を表示させる方法ありませんか? 3+6+7=16ではなく、3+6+7=4というように・・・ 毎月数字が増えていくので、(3+6+7+10・・・)合計のセルに、常に増えた分だけの数字を表示させる方法あれば教えてください。 お願いします。

  • Excelでの合計計算について

    初歩的な質問で申し訳ありません。 Excelでの数字の合計方法について教えてください。 Excelで以下の数を合計するとします。 10 10 -10 10 10 SUMで計算すると結果が「30」になるのですが、数学上間違いではないことは分かります。 ですが、うまく言えないのですが私が求める結果は「40」になってほしいのです。 合計からマイナスの値を引く?という方法になると思うのですが、これを実現する方法、または関数などを教えてください。 大変恐縮なのですが、大変な素人のため、多少詳しく教えていただけると幸甚です。

  • エクセルの関数について

    すみません。どうなっているのでしょうか?? あるセルに『=SUM(J18:J48)』と合計を求める関数入れると 『11月2日』と日付が出てきます。そのセルの前後に同じ式を入れると正しく合計が示されます。因みに合計数は27700です。 何が原因なのでしょうか? エクセルは2010、osはwindows7です。

  • エクセル関数で条件に一致したものの合計

    エクセル関数で条件に一致したものの合計 を計算することはできますでしょうか? SUMIFを使えばできるような気もするのですが、どうやったら良いのか分かりません。どうか教えてください。 やりたいことは、、 A列に1 or 2が入ってます。下記みたく。 1 2 2 1 2 1 B列に数字が入っていて、A列が2である行のB列の合計を求めたいのです。 よろしくお願いします。 -- エクセル2003

  • エクセルで塗りつぶし別の合計を出す関数

    エクセルで塗りつぶし別(又はフォントの色別)に入力されている数字の合計を出す関数ありますでしょうか?CONTAも同様に お願いします。

  • Excelの計算で、分の合計を『~時間~分』に置き換える方法を教えて下

    Excelの計算で、分の合計を『~時間~分』に置き換える方法を教えて下さい! 例 30    50    60    140 ←上の数字の合計です。この部分を『~時間~分』に置き換えたいです。 よろしくお願いします。

  • エクセルの関数を教えてください。

    エクセルの関数を教えてください。 エクセルの画像を添付しますのでよろしくお願いします。 1年後にユニットがなくなるのでその数字を現在UT(合計)から1年経過後に自動でマイナスしてくれるような関数はありますでしょうか? 画像は現在UTが13になってますが、失効日の所の数字をマイナスして今日現在UTが8になるようになれば最高なのですが・・・・・ よろしくお願いします。

  • 週の合計を求める計算式?

    週単位の売上を出したいのですが、 A1に関数で今日の日付を入れてます。 例えば、A1が4/23なら22~28日の合計を求め、 A1が4/29なら29日の週の合計を求める様な計算式はどうすれば良いのでしょうか?

  • エクセル-計算式以外の数値のみを合計

     エクセルで、合計範囲内に数値と計算式がある 場合、数値のみを合計するにはどうしたらいいで しょうか。現在は、COTRLキーで、数値のみを 手動で範囲選択していすが、数値のセルが計算式に 変わっても対応できるように、関数などで指定を したいと思います。  対象となる表は以下の通りです。    *横に製品名・縦に日付、製品ごとの日々の   生産数を入力、1ヶ月分を1シートとする。    *さらに、1週間毎に2列挿入。1つは生産数    の合計、もう一つは全生産数の%。    *表の右端には製品ごとの1月分の合計を   表示←この部分に入れる計算式が質問内容です。   

  • エクセル関数で同じ日付の合計を出す関数を作りたいです。

    エクセル関数で同じ日付の合計を出す関数を作りたいです。 以下のような表があります。 <Sheet1>      A      B 1  2010.08.21  4500 2  2010.08.15  300 3  2010.08.15  -600 4  2010.08.15  -1100 これを使用して、 <Sheet2>      A      B 1  2010.08.29   0 2  2010.08.21   4500 3  2010.08.15   -1400 という具合に、B1~B3に、Sheet1の合計を表示させたいです。 もちろん、簡単でよいなら、それぞれsheet1を見て、手打ちで該当するものに たとえば、Sheet2のB3なら、=sum(Sheet1!b2:b4)ですむと思うですが、 転写させて、毎回自動的に結果を得られるようにしたいのです。 具体的には、 Sheet2のA列の日付をキーにして、 Sheet1のA列とマッチしたもののBの合計を求めたいです。 (説明べたでごめんなさい) Vlookupやmatch関数などで試してみたんですが、 いまいちうまくいきませんでした。 エクセルに詳しい方、回答お待ちしております。

専門家に質問してみよう