プロが教えるわが家の防犯対策術!

お世話になっております。
よろしくお願いいたします。

A1とB1にそれぞれ入力された年月日を関数で比較して、1か月以上経過しているかを判定できるようにしたいと考えてます。
また、一か月分の日数はA1の月の日数に従う必要があるため、
単純に30なり31を足しても正しい数値にはならないので、手をこまねいています。

どうぞよろしくお願いいたします。

A 回答 (4件)

またまたお邪魔します。



>つまり、1/1の一か月後は1/31としたいのです。
というコトですので、
A1セルのシリアル値の「1か月後」を求めたい場合は
単純に
=EDATE(A1,1)-1
としてみてはどうでしょうか?

※ 小の月・大の月の月末は考慮していません。m(_ _)m
    • good
    • 0
この回答へのお礼

解決しました。
ありがとうございました。

お礼日時:2016/01/18 21:24

No.2です。


続けてお邪魔します。

前回の②の対処をしてみました。
=IF(A1=EOMONTH(A1,0),EOMONTH(A1,1),EDATE(A1,1))
とすれば
A1セルが小の月の月末の場合は1か月後の月末が表示されるはずです。

これを利用し表示したいセルに
=IF(IF(A1=EOMONTH(A1,0),EOMONTH(A1,1),EDATE(A1,1))-B1>0,"1か月未満","1か月以上")
とすると何とかご希望通りにならないでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございます。

一般的に、一か月後を表す場合は開始日を含まないことが多いですが(1/1の一か月後→2/1)
今回は開始日を含んでの計算が必要です(最初の質問にその旨記入せずすみませんでした)。
つまり、1/1の一か月後は1/31としたいのです。

そこで、No.1の方にいただいたヒントで作ってみましたが
私の書き方では年をまたいだ場合に思うような結果が得られません・・・

お礼日時:2016/01/15 17:03

こんにちは!



横からお邪魔します。
表示したいセルに
=IF(B1<EDATE(A1,1),"1か月未満","1か月以上")
としたらどうなりますか?

※ 注意点 ※
① A1セルが大の月の月末の場合 → 小の月の月末(30日、2月の場合は28日もしくは29日)になります。
② A1セルが小の月の月末の場合 → 次月の同日表示になります。(30日、3月の場合は28日または29日)
 
②の場合の処理として31日を表示したいのであれば
EOMONTH関数等を併用する必要があると思います。m(_ _)m
    • good
    • 0

一ヶ月経過と言っても


次月の同日(大の月小の月の月末をどう処理するか?)
など考える必要があるけど?

具体的には、10/31の一ヶ月後は、11/30?それとも12/1?

前者ならEDATE関数、後者ならDATE関数に、MONTH関数とか組み合わせる
    • good
    • 0
この回答へのお礼

ありがとうございます!

当日を含んだ一か月なので、この場合は前者になります。

早速EDATE関数にDATE関数を組み合わせて作ってみたのですが、年数をまたいだ場合の書き方が分かりません。

A1に年月日を入れるとして、
=DATE(YEAR(A1),MONTH(EDATE(A1,1)),DAY(A1-1))

とすると、例えばA1が2015年12月11日だとすると、導き出す年月日が2015年1月10日となってしまいます。
この場合どのように書けばいいのでしょうか。

お礼日時:2016/01/15 09:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!