[[20200831093422]] 『日付関数』(マキ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『日付関数』(マキ)

A12に今日の日付を入れたら
6か月後の日付をS12に表示しています。
=IF(A12="","",DATE(YEAR(A12),MONTH(A12)+6,DAY(A12)))

A12に今日(8月31日)と入力と入れたら
S12に6か月後の3月3日と出てしまいます。3月1日と出てほしい。
S12に出てほしい月
8月28日→2月28日
8月29日→3月1日
8月29日→2月29日(うるう年)
8月30日→3月1日
8月31日→3月1日
9月1日→3月1日

以上
宜しくお願い致します。

< 使用 Excel:Excel2013、使用 OS:Windows10 >


 S12セル =EDATE(A12,6)+(DAY(EDATE(A12,6))<>DAY(A12))

(半平太) 2020/08/31(月) 09:54


半平太様
できました
ありがとうございました。

式の説明をお願いできませんでしょうか

よろしくお願いいたします。
(マキ) 2020/08/31(月) 10:36


 >式の説明をお願いできませんでしょうか

 大の月→小の月だと、応当日がない場合があります。
 そのとき、EDATEは応答月の月末を返してきますので、それに1を足してやればいい。

 応当日があったか無かったかは、DAY関数が同じか否かで判定できます。

 つまり、DAY(EDATE(A12,6))<>DAY(A12) で判定します。

 それがTRUEなら1、FALSEなら0の意味になるので、1日の調整ができます。

(半平太) 2020/08/31(月) 11:32


半平太様
説明ありがとうございます。
私の頭では少し.....

=EDATE(A12,6)は
A12にいれた日付の6ヶ月後を表示するのはわかりますが
多分
8月29日〜8月31日まで2月28日が変わらない
変えるために
そのあとの数式があると思います。
+(DAY(EDATE(A12,6))<>DAY(A12))
これが
いまいち理解できないのですが
よろしくお願いいたします。

(マキ) 2020/08/31(月) 11:53


 でしたら、これに変えてください。

 S12セル =EDATE(A12,6)+IF(DAY(EDATE(A12,6))<>DAY(A12),1,0)

(半平太) 2020/08/31(月) 12:35


半平太様

新しい式
ありがとうございます。

もしA12とS12の日付が同じだったら
そのまま

もし
A12とS12の日付が違っていたら
日付に1を足しなさい
ですか?

よろしくお願いいたします。

(マキ) 2020/08/31(月) 13:35


 >もしA12とS12の日付が同じだったら
 >そのまま
 >もし
 >A12とS12の日付が違っていたら
 >日付に1を足しなさい
 >ですか?

 仰る通りです。

(半平太) 2020/08/31(月) 13:40


納得できない場合は、表にしてみると良いですよ。

 元の日付	=EDATE(A10,6)	求める日付
 2020/8/27	2021/2/27	2021/2/27
 2020/8/28	2021/2/28	2021/2/28
 2020/8/29	2021/2/28	2021/3/1	★
 2020/8/30	2021/2/28	2021/3/1	★
 2020/8/31	2021/2/28	2021/3/1	★
 2020/9/1	2021/3/1	2021/3/1
 2020/9/2	2021/3/2	2021/3/2

★のところだけ、+1日すれば良い、という事。
(???) 2020/08/31(月) 13:53


半平太様
???様

貴重な時間を使って頂き感謝しております。
ありがとうございました。

( マキ) 2020/08/31(月) 14:28


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.