- ベストアンサー
Excelで~年後、~ヶ月後の入力を行いたいのですが…
一覧表を作成し、○ヶ月後・○年後といった資料を作っています。「EDATE」の数式を使ったのですが、うるう年が反映してしまうのか思ったような日付が出ません!! こちらの希望としましては、 例えば、 平成10年3月12日の10年後が…、 平成20年3月12日に。 平成15年3月12日の20年後が…、 平成35年3月12日に。 と、きっちり進んでくれたら何よりです。 どなたか良い方法を教えて下さい! 宜しくお願いします!!
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
今の日付が「日付」形式でA1にあるとして、 =DATE(YEAR(A1)+10,MONTH(A1),DAY(A1)) これで10年後の日付が出てきます。20年後なら+20ですね。 ちなみに、2/29でこれを試してみると、3/1が出てきます。 それで良ければいいんですが、2/28にしたい場合はIF文で 制御する必要が出てきますね。
その他の回答 (4)
- shinkami
- ベストアンサー率43% (179/411)
月が変わるのが問題ですか この差異を利用します。 今の日付が「日付」形式でA1にあるとして、 =DATE(YEAR(A1)+10,MONTH(A1),DAY(A1)) -MONTH(DATE(YEAR(A1)+10,MONTH(A1),DAY(A1))) +MONTH(A1)
- gatt_mk
- ベストアンサー率29% (356/1220)
先ほどの10日後は 10日後なら =date_add("d",10,C1) の間違いです。 訂正します。
- gatt_mk
- ベストアンサー率29% (356/1220)
VBAではDateAdd関数が使えますので、VBAのファンクションプロシージャでオリジナルの関数を作ってみたら簡単に10年後とか10ヶ月後とか10日後が指定できると思います。 参考 Public Function date_add(inter As String, i As Double, strDate As Date) As Date date_add = DateAdd(inter, i, strDate) End Function 指定したいセルに関数として下記のように入力してください。 =date_add("yyyy",10,C1) C1に基準となる日付が入っている場合です。 10ヶ月後なら =date_add("m",10,C1) 10日後なら =date_add("m",10,C1) で値が求められます。 そのままでは数値として表示されてしまうので、正しい元号日付に表示させるには表示書式を変更してください。
- mshr1962
- ベストアンサー率39% (7417/18945)
EDATEでそうなりませんか?どのような日付になるんでしょうか? 普通の数式でもある程度はできますが、問題は29~31日をどうするかという問題が残ります。 年単位の場合2000年2月29日の翌年を 2月28日にするなら =EDATE(A1,12) 3月1日でいいなら =DATE(YEAR(A1)+1,MONTH(A1),DAY(A1)) ※この例で1月31日の翌月は2月31日=2月28日+3日で3月3日になります。 あくまで2001年2月29日としたいなら =TEXT(DATE(YEAR(A1)+1,1,1),"ggge年")&TEXT(A1,"m月d日") としてください。
補足
早速のご回答ありがとうございます! 頂いた数式をもとに試してみました。 ご回答文の通り今の日付をうるう年に設定し、未来の日付がうるう年にあたった場合に翌日である3月1日が反映しました。 この場合にIF文を使って3月1日でなくて2月28日に反映させる場合はどのような数式を当てはめると良いのでしょうか? 度々申し訳ありませんが、お知恵を拝借頂けましたら幸いです!!