重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

仮に今日が 2013/07/21  だとして、TODAY関数で表示しますが、

2013/07/20 過去
2013/07/22 未来

とかを見分ける関数はあるのでしょうか?

特に今日より前の日を計算したいのですが


エクセル 2003です

A 回答 (8件)

う~ん、私は日付と何かの数値(金額とか物の個数とかで、先々の日付分まである)があって、今日までの累計を計算したいのではないかと推測しました。



A列に日付、B列に計算したい数値があるとして、

=SUMIF(A:A,"<="&TODAY(),B:B)

みたいな。

※Excelは日付をシリアル値という数値で管理しています。
ですので、過去の日付は今日よりも小さい数値、未来の日付は今日よりも大きい数値となります。
深く考えずに今日より大きいか小さいかで過去・未来を判断されては?
    • good
    • 0
この回答へのお礼

ありがとうございました

お礼日時:2013/10/14 15:42

No.5・6 です。



質問文のタイトルとか「……の日を計算したい」という言い方を改めて見ていて思ったのですが、もしかして、今日の 1 日前、2 日前、…の、日付を求めたいというだけの意味ですか?「見分ける」というよりも?

もしもそうなら、日付データは No.5 でも言ったとおり、整数の数列なので、足し算・引き算だけで計算できます。今日が基準であれば TODAY 関数を混ぜた数式を使うので、~日前のための関数というのを考える必要はありません。次式を入力してみてください。

A1 1
B1 =today()-a1
C1 =today()+2
    • good
    • 0

No.5 です。

すみません、コピペしてたら、ちょっと手が滑りました。

No.5 に載せた数式のうち IF 関数を使ったものについては、SIGN をくっ付けとく必要はありませんでした。どちらでも結果は同じになるのですが、数式が短いほうが分かりやすいですよね。

=if(a1-"2013/07/21",if(a1-"2013/07/21"<0,"過去","未来"),"現在")
=if(a1-D$1,if(a1-D$1<0,"過去","未来"),"現在")
    • good
    • 0

あまりにも多種多様な回答が考えられて、皆さん困っておいでですね^^; 質問者さんがどのようなことをしたいのか、想像が膨らみます。



ご質問の内容から、初級者の方なのかなと思います。そして、見分けてどうするかと言えば、IF 関数でしょうか?

とりあえず、A 列にいろんな日付が入っているとして、B 列に、次のような数式を記入してみてください。D1 セルには「2013/07/21」と記入されているものとします。

B1

=a1-"2013/07/21"  ……セルの書式を「数値」などに設定
=a1-D$1       ……セルの書式を「数値」などに設定
=(a1-"2013/07/21")>0
=(a1-D$1)<=0
=sign(a1-"2013/07/21")
=sign(a1-D$1)
=choose(2+sign(a1-"2013/07/21"),"past","present","future")
=choose(2+sign(a1-D$1),"past","present","future")
=index({"ぱすと","ぷれぜんと","ふゅーちゃー"},2+sign(a1-"2013/07/21"))
=index({"ぱすと","ぷれぜんと","ふゅーちゃー"},2+sign(a1-D$1))
=if(sign(a1-"2013/07/21"),if(sign(a1-"2013/07/21")<0,"過去","未来"),"現在")
=if(sign(a1-D$1),if(sign(a1-D$1)<0,"過去","未来"),"現在")

「$」マークは、参照元の行、列、あるいは両方を固定する(絶対参照にする)ための記号です。数式をコピーしてたくさんの行に入力しても、D1 という参照元のセルがどんどん下にずれていかないようにするためです。

日付データには Excel において整数のシリアル値が割り振られているので、上のように引き算すれば、そのまま経過日数になるのですね。ただ、引き算を行わせているセルは、そのままでは日付の書式になってしまうことがあるので、「数値」などに設定します。そうでないと、変なものが表示されてしまいます。

セルに色を塗って見た目で分かるようにしたいって趣旨の場合は、No.4 さんのように条件付き書式ってものを使えばいいですね。
「TODAY関数ではなくて過去の関数」の回答画像5
    • good
    • 0

見分けるのは簡単ですが、その結果を「どこにどう示したい」のでしょうか?





例:
A列に7/20とか22日とか記入したら、そのセルについて。

手順:
A列を縦一列選択する
書式メニューの条件付き書式を開始する

セルの値が 次の値より大きい =TODAY()
として、書式ボタンでセルの塗色を未来の色に設定する

追加をクリック

セルの値が 次の値の間 1 =TODAY()-1
として、書式ボタンでセルの塗色を過去の色に設定する。
「TODAY関数ではなくて過去の関数」の回答画像4
    • good
    • 0

A1セルに日付が有るとして、B1セルに過去、現在、未来を表示させるとしたら、次の式を入力すればよいでしょう。


関数自体で表示する方法は有りません。

=IF(A1="","",IF(A1<TODAY(),"過去",IF(A1=TODAY(),"現在","未来")))
    • good
    • 0

A列に 日付が入っているとして


B列に =TODAY()-A1 と入れて下までコピーしておく
B列の表示形式を 数値にすれば今日を基準に何日前か、或いは何日後かが出ますが
如何でしょうか。
    • good
    • 0

例えば、



TODAY()-20 にすれば、今日から20日前
TODAY()+15 にすれば、今日から15日後

が求められますが、これではダメ?
    • good
    • 0

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