• ベストアンサー

エクセルの日付計算

入力した日付から○ヶ月前の日付、または○ヶ月後の日付が表示されるようにしたいのですが、そのような関数はあるのでしょうか? 回答よろしくお願い致します。

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

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.6

No.5 の続きですが・・・ EDATEアドイン関数を使用しないで、同等の計算式を作ってみました。 アドイン関数ってブックを配布するとき、不便じゃない? と思ったりして・・・ 括弧内の数字(4ヶ所)が、加減する月数です。 現在の式は、セルA1の日付けの2ヶ月前を表示します。 =IF(MOD(12+MONTH(A1)+(-2),12)=MONTH(DATE(YEAR(A1),MONTH(A1)+(-2),DAY(A1))),DATE(YEAR(A1),MONTH(A1)+(-2),DAY(A1)),DATE(YEAR(A1),MONTH(A1)+1+(-2),0))

noname#188370
質問者

お礼

月末の調整が必要だとかなりややこしいんですね…(>_<) すごい式まで作って頂いてありがとうございました。 とはいうものの、一体どういう構成になっているのか、さっぱり分からないので、そのままコピーさせて頂くしかないです。

その他の回答 (5)

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.5

単に"月の引き算"する方法では、商取引等重要なものに 使用するには、大変危険です。 まぁ、だいたいって感じで良ければいいんですが・・・ セルA1に入力されている 2003/4/30 の 2ヶ月前を求めるのに =DATE(YEAR(A1),MONTH(A1)-2,DAY(A1)) とすると、2003/3/2 になってしまいます。 普通、支払いや利息の計算など商取引では、2003/2/28 に なると思います。 EDATE関数を使用するか、アドインがいやなら、月末補正を 考慮した式にすれば良いでしょう。式が長くなりますが・・・ ちょっと気になったので・・・

  • deadline
  • ベストアンサー率63% (1239/1943)
回答No.4

ANo.#2の訂正。 『"MONTH(A2)+○"が月が12を超えても』は、 『"MONTH(A2)+○"が12を超えても』です。 ついでに、ANo.#3の方の回答にあるEDATE関数を使用する場合には、EDATE関数はアドイン関数なので、『分析ツール』がインストールされている必要があります。 インストールされていない場合には、"Office"または"Excel"のセットアッププログラムを実行して『分析ツール』をインストールし、[ツール]⇒[アドイン]で一覧の中から『□分析ツール』にチェックを入れる必要があります。

  • Hageoyadi
  • ベストアンサー率40% (3145/7860)
回答No.3

A1に日付が入力されているとして、 =EDATE(A1,-1) で1ヶ月前の日付が表示されます。-1の部分を1とすると1ヶ月先の日付になります。

  • deadline
  • ベストアンサー率63% (1239/1943)
回答No.2

単純に○ヶ月前の同じ日(4月15日の3ヶ月前が1月15日とか)というのであれば、セルA2に"2003/4/26"という形で日付が入力されているとして、 =DATE(YEAR(A2),MONTH(A2)-○,DAY(A2)) (○ヶ月前) =DATE(YEAR(A2),MONTH(A2)+○,DAY(A2)) (○ヶ月後) です。"MONTH(A2)-○"が1より小さくなったり、"MONTH(A2)+○"が月が12を超えても、Excelが自動的に年の表示を加減してくれます。

  • tbobi
  • ベストアンサー率45% (544/1189)
回答No.1

A1に日付が入力されているとして、別のセルに =DATE(YEAR(A1),MONTH(A1)-1,DAY(A1)) とすると1ヶ月前のその日付 =DATE(YEAR(A1),MONTH(A1)+1,DAY(A1)) とすると1ヵ月後のその日付がでます。

関連するQ&A