- ベストアンサー
TODAY関数ではなくて過去の関数
仮に今日が 2013/07/21 だとして、TODAY関数で表示しますが、 2013/07/20 過去 2013/07/22 未来 とかを見分ける関数はあるのでしょうか? 特に今日より前の日を計算したいのですが エクセル 2003です
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
う~ん、私は日付と何かの数値(金額とか物の個数とかで、先々の日付分まである)があって、今日までの累計を計算したいのではないかと推測しました。 A列に日付、B列に計算したい数値があるとして、 =SUMIF(A:A,"<="&TODAY(),B:B) みたいな。 ※Excelは日付をシリアル値という数値で管理しています。 ですので、過去の日付は今日よりも小さい数値、未来の日付は今日よりも大きい数値となります。 深く考えずに今日より大きいか小さいかで過去・未来を判断されては?
その他の回答 (7)
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
No.5・6 です。 質問文のタイトルとか「……の日を計算したい」という言い方を改めて見ていて思ったのですが、もしかして、今日の 1 日前、2 日前、…の、日付を求めたいというだけの意味ですか?「見分ける」というよりも? もしもそうなら、日付データは No.5 でも言ったとおり、整数の数列なので、足し算・引き算だけで計算できます。今日が基準であれば TODAY 関数を混ぜた数式を使うので、~日前のための関数というのを考える必要はありません。次式を入力してみてください。 A1 1 B1 =today()-a1 C1 =today()+2
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
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,"過去","未来"),"現在")
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
あまりにも多種多様な回答が考えられて、皆さん困っておいでですね^^; 質問者さんがどのようなことをしたいのか、想像が膨らみます。 ご質問の内容から、初級者の方なのかなと思います。そして、見分けてどうするかと言えば、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)
- KURUMITO
- ベストアンサー率42% (1835/4283)
A1セルに日付が有るとして、B1セルに過去、現在、未来を表示させるとしたら、次の式を入力すればよいでしょう。 関数自体で表示する方法は有りません。 =IF(A1="","",IF(A1<TODAY(),"過去",IF(A1=TODAY(),"現在","未来")))
- hallo-2007
- ベストアンサー率41% (888/2115)
A列に 日付が入っているとして B列に =TODAY()-A1 と入れて下までコピーしておく B列の表示形式を 数値にすれば今日を基準に何日前か、或いは何日後かが出ますが 如何でしょうか。
- kuma310min
- ベストアンサー率40% (212/518)
例えば、 TODAY()-20 にすれば、今日から20日前 TODAY()+15 にすれば、今日から15日後 が求められますが、これではダメ?
お礼
ありがとうございました