[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『西暦から1年ひく方法』(tak)
計算式で西暦から1年ひくことは可能でしょうか。例えば、A1セルに「2004/01/01」とあるとして、これを計算式を用いて「2003/01/01」としたいのですが、もし方法をご存じでしたら教えてください。
=DATE(YEAR(A1)-1,1,1) としてみてはいかがでしょう。 (みやほりん)
ありゃ、これじゃ1月1日以外でも前年の1月1日になってしまいますが、、、。 =DATE(YEAR(A1)-1,MONTH(A1),DAY(A1)) でどうでしょう。もうひとつ、=EDATE(A1,-12) 但し微妙に違うようで、2004/2/29 をA1に入れてみたところ、=DATE・・の方は 2003/3/1、 =EDATE・・の方は2003/2/28 になりました。う〜ん、わからん。(純丸)
やっぱりそうですよね。うかつでした<純丸さん [[20040901152926]] 『1ヶ月前を表示する。』(うみ) [[20040830170152]] 『半年後の日付を自動的に表示させたい』(Q太) [[20040710143424]] 『今日現在から2年後を表示する関数』(ぴろ) [[20040311231828]] 『指定日から何ヶ月後の日付計算表示』(タムタム) [[20040309184157]] 『1 3 6ヶ月後を求める数式について』(ピートダイ) [[20040127105320]] 『年月日を3年後にしたい』(わか) [[20031002111534]] 『1ヶ月後の月日を計算する方法』(みど) [[20030506222545]] 『ある特定の日から2ヵ月後・6ヵ月後を算出したい』(ハル) [[20021029141055]] 『A1の日付に対し6ヵ月後の日付を表示させたい』(益々たらえ) 参考になるでしょうか? (みやほりん)
早速のレス、ありがとうございます。
純丸さんの=DATE(YEAR(A1)-1,MONTH(A1),DAY(A1)) でやってみたらうまくいきました。
ただ、2/29の表示だけはうまくいかないようです。みやほりんさんが載せてくれた過去ログの中にある、「年月日を3年後にしたい」というやつでは、DATEの他にLEFTとTEXT関数も使っています。これでも試したのですが、やはり閏年については3/1になります。閏年対策まで考えると、かなり複雑な(というか長い)式が必要になりそうです。当面は、純丸さんが教えてくれたものでなんとかなりそうなので、それを利用させていただきます。
みやほりんさん、純丸さん、ありがとうございました。
(tak)
EDATE関数は知らないけどDATE関数は =DATE(2004,1,1-1) とかやると2004年1月1日の1日前の日付である2003年12月31日を返す関数だから =DATE(2003,2,29) はすなわち=DATE(2003,2,28+1)に等しく2003年3月1日になる仕組みですね。 質問と、回答されたお二方の式を見て考えるに、 2001/02/28の一年前は2000/02/28で良くて 2000/02/29の一年前は1999/02/28で良いのなら、 =DATE(YEAR(A1)-1,MONTH(A1),DAY(A1)-IF(TEXT(A1,"mmdd")="0229",1,0)) とかはどうかしらねぇ… 2001/02/28の一年前は2000/02/29が良い、って言うなら話はまた面倒になるけれども。 追記: なるほど、EDATE関数って月末を適当にうまく扱う関数なのね(←認識大雑把すぎ?) (ご近所PG)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.