プロが教える店舗&オフィスのセキュリティ対策術

エクセルで下記のようなテーブルがあります。
4/1 500
4/1 300
4/2 600
.
.
12/31 1000


日付ごとに数字が入っています。1日に1つの数字とは限りません。
これを今日遡って半年分だけ合計した数を、表示したいのですがどのような関数を書いたらよいでしょうか。

ファイルはどのタイミングで誰が開くかわからないため、常に今日から半年分(180日分)合計したいと思っています。

よろしくお願いいたします。

A 回答 (5件)

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()))
の間違いではないかと…
    • good
    • 0
この回答へのお礼

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

わかりやすいご説明をありがとうございます。

お礼日時:2010/03/02 18:09

こんばんは!


色々方法が出ていますが、
他の一例です。
当方使用のExcel2003の場合ですが、EDATE関数を使っていますので
メニュー → ツール → アドイン → 「分析ツール」にチェックを入れておく必要があります。

A2から行方向に日付、B2から行方向に数値が入力してあるとします。
とりあえず1000行目まで対応できる数式です。

表示させたいセルに
=SUMPRODUCT((A2:A1000>=EDATE(TODAY(),-6))*(A2:A1000<=TODAY())*(B2:B1000))
としてみてはどうでしょうか?

数式内のEDATE関数は大の月・小の月関係なく、今日から「-6ヶ月」という事になりますので
2009年9月2日以降のデータを集計しています。

以上、参考になれば幸いですが
的外れなら読み流してくださいね。m(__)m
    • good
    • 0

六ヶ月前ですが月で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)
    • good
    • 0
この回答へのお礼

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

ありがとうございました。

お礼日時:2010/03/02 16:29

A列が日付、B列が数字の場合


=SUMIF(A:A,">"&TODAY()-180,B:B)
でいいと思います。
    • good
    • 0
この回答へのお礼

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

ありがとうございました。

お礼日時:2010/03/02 16:30

今日の日付から180日前なら =now()-180


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

自分以外の人に引き継ぐこともあるので、なるべく簡単で短い関数を使いたいと考えています。

マクロはなるべく使いたくないのですが、自分専用のファイルならいいかもしれません。ありがとうございました。

お礼日時:2010/03/02 16:39

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