• ベストアンサー

TODAY関数ではなくて過去の関数

仮に今日が 2013/07/21  だとして、TODAY関数で表示しますが、 2013/07/20 過去 2013/07/22 未来 とかを見分ける関数はあるのでしょうか? 特に今日より前の日を計算したいのですが エクセル 2003です

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

  • ベストアンサー
  • chonami
  • ベストアンサー率43% (448/1036)
回答No.8

う~ん、私は日付と何かの数値(金額とか物の個数とかで、先々の日付分まである)があって、今日までの累計を計算したいのではないかと推測しました。 A列に日付、B列に計算したい数値があるとして、 =SUMIF(A:A,"<="&TODAY(),B:B) みたいな。 ※Excelは日付をシリアル値という数値で管理しています。 ですので、過去の日付は今日よりも小さい数値、未来の日付は今日よりも大きい数値となります。 深く考えずに今日より大きいか小さいかで過去・未来を判断されては?

fasdlqwirw
質問者

お礼

ありがとうございました

その他の回答 (7)

回答No.7

No.5・6 です。 質問文のタイトルとか「……の日を計算したい」という言い方を改めて見ていて思ったのですが、もしかして、今日の 1 日前、2 日前、…の、日付を求めたいというだけの意味ですか?「見分ける」というよりも? もしもそうなら、日付データは No.5 でも言ったとおり、整数の数列なので、足し算・引き算だけで計算できます。今日が基準であれば TODAY 関数を混ぜた数式を使うので、~日前のための関数というのを考える必要はありません。次式を入力してみてください。 A1 1 B1 =today()-a1 C1 =today()+2

回答No.6

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,"過去","未来"),"現在")

回答No.5

あまりにも多種多様な回答が考えられて、皆さん困っておいでですね^^; 質問者さんがどのようなことをしたいのか、想像が膨らみます。 ご質問の内容から、初級者の方なのかなと思います。そして、見分けてどうするかと言えば、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 さんのように条件付き書式ってものを使えばいいですね。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

見分けるのは簡単ですが、その結果を「どこにどう示したい」のでしょうか? 例: A列に7/20とか22日とか記入したら、そのセルについて。 手順: A列を縦一列選択する 書式メニューの条件付き書式を開始する セルの値が 次の値より大きい =TODAY() として、書式ボタンでセルの塗色を未来の色に設定する 追加をクリック セルの値が 次の値の間 1 =TODAY()-1 として、書式ボタンでセルの塗色を過去の色に設定する。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

A1セルに日付が有るとして、B1セルに過去、現在、未来を表示させるとしたら、次の式を入力すればよいでしょう。 関数自体で表示する方法は有りません。 =IF(A1="","",IF(A1<TODAY(),"過去",IF(A1=TODAY(),"現在","未来")))

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

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

回答No.1

例えば、 TODAY()-20 にすれば、今日から20日前 TODAY()+15 にすれば、今日から15日後 が求められますが、これではダメ?