エクセルで契約期間のうち指定日の属する年度の月数を計算する場合、端数を1月として扱い、年度は4月1日~翌年3月31日とする条件があります。正しく計算するには、単純なYEARとMONTHの差だけでなく、日付の切り上げ処理を考慮する必要があります。
問題点の整理
=IF(C9=””,””,(YEAR(F9)-YEAR(E9))*12+(MONTH(F9)-MONTH(E9))+1) の式では、期間が年度の途中で始まった場合や、契約開始日・満了日が月末近くの場合、端数を1月として正確に計算できないケースがあります。
また、年度を4月1日~翌年3月31日で区切る場合、単純なYEAR関数では正しく年度をまたぐ計算になりません。
修正版の計算方法
月数を正確に算出するには、E9(契約期間中の年度初日)とF9(契約期間中の年度末日)を基に以下のように計算します。
=DATEDIF(E9,F9,”m”) + 1
DATEDIF関数は2つの日付の間の月数を計算します。”m”オプションを使用すると月単位で計算でき、末日の端数も1月として加算する場合は +1 を追加します。
年度を考慮する場合
年度初日と年度末日をE9、F9に設定しておくと、契約開始日・満了日が年度内に収まるように自動調整できます。
これにより、指定日の年度における契約月数を正確に算出可能です。
具体例
例:契約開始日 2024/03/20、契約満了日 2024/07/15、指定日 2024/05/10 の場合
E9 = MAX(C9,$C$4) → 2024/04/01
F9 = MIN(D9,$C$5) → 2024/07/15
=DATEDIF(E9,F9,”m”) +1 → 4ヶ月
まとめ
Excelで年度を考慮した月数計算は、YEAR・MONTHの単純計算では正確に算出できない場合があります。DATEDIF関数を用い、端数を1月として加算することで、指定日が属する年度内の契約月数を正確に求められます。


コメント