• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル2003 関数で日付を計算)

エクセル2003で日付を計算する方法

このQ&Aのポイント
  • エクセル2003を使用して日付を計算する方法についてご質問です。特に、指定した日付から3ヶ月後の日付を求める方法についてお伺いします。
  • 現在、エクセル2003のセルV34に日付が入力されており、この日付から3ヶ月後の日付を別のセル(I122)に表示させています。しかし、以下の条件に従って日付を計算したいと考えています。
  • V34に入力された日の値が1~15の場合には、翌々月の最終日を表示させたいです。一方、V34の日の値が16以降の場合には、3ヶ月後の最終日を表示させたいです。このような計算方法を実現するにはどうすれば良いでしょうか?お知恵をお貸しください。

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

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

=IF(DAY(V34)<=15,EOMONTH(V34,2),EOMONTH(V34,3))

88suihou88
質問者

お礼

=IF(V34="","",IF(DAY(V34)<=15,EOMONTH(V34,2),EOMONTH(V34,3))) 有難うございました。 V34が空欄でも対応出来る様、上記の様にしました。

その他の回答 (3)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

次の方法は如何でしょうか。 =IF(V34<>"",IF(DAY(V34)<=15,DATE(YEAR(V34),MONTH(V34)+3,0),DATE(YEAR(V34),MONTH(V34)+4,0)),"")

noname#176215
noname#176215
回答No.3

=IF(V34="","",EOMONTH(V34-15,3)) でいいでしょ。多分。

noname#140971
noname#140971
回答No.2

H20.6.12___H20.8.31 <--- =GetDate(A1, 2+ABS(DAY(A1)>15), 99) H20.6.16___H20.9.30 <--- =GetDate(A1, 2+ABS(DAY(A1)>15), 99) =EOMONTH(A1,2+ABS(DAY(A1)>15)) でもOK! Public Function GetDate(ByVal Now As Date, _             ByVal Move As Integer, _             ByVal Hiduke As Integer) As Date                GetDate = DateSerial(DatePart("yyyy", Now), _              DatePart("m", Now) + Move - (Hiduke = 99), _              Hiduke * Abs(Hiduke <> 99)) End Function エクセルは一度も操作したことがありません。 でも、エクセルの関数を使う場合も同じ手法だと推察します。 [イミディエイト] ? GetDate("2008/6/12", 2, 99) 2008/08/31 ? GetDate("2008/6/12", 3, 99) 2008/09/30 ? GetDate("2008/6/12", 2, 1) 2008/08/01 ? GetDate("2008/6/12", 3, 1) 2008/09/01 要は、月を2加算するのか2+1加算するのかだと思います。 [イミディエイト] ? ABS(DAY("2008/6/12")>15) 0 ? ABS(DAY("2008/6/16")>15) 1

関連するQ&A