Excel DATEDIF公式修正:需显示17年12个月而非18年12个月
修正后的Excel日期差值公式
你的问题出在原公式对刚好满整年的逻辑处理错误:当日期差为N年0个月时,DATEDIF的"y"参数返回N,"ym"参数返回0,原公式直接将月份显示为"12 months",导致出现N years12 months的错误结果。
以下是修正后的公式,会将N年0个月的情况显示为(N-1) years; 12 months,同时优化了格式细节(比如年份为0时不显示多余分号):
=IF( DATEDIF($C7; H$3; "ym")=0; IF(DATEDIF($C7; H$3; "y")-1=0; "12 months"; IF(DATEDIF($C7; H$3; "y")-1=1; "1 year; 12 months"; (DATEDIF($C7; H$3; "y")-1) & " years; 12 months")); IF(DATEDIF($C7; H$3; "y")=0; IF(DATEDIF($C7; H$3; "ym")=1; "1 month"; DATEDIF($C7; H$3; "ym") & " months"); IF(DATEDIF($C7; H$3; "y")=1; "1 year"; DATEDIF($C7; H$3; "y") & " years") & IF(DATEDIF($C7; H$3; "ym")=1; "; 1 month"; "; " & DATEDIF($C7; H$3; "ym") & " months") ) )
关键修正点:
- 当
DATEDIF($C7; H$3; "ym")=0(刚好满整年)时,将年数减1,月份固定显示为"12 months" - 删除了原公式中多余的
IF(DATEDIF(...,"ym")=12)判断(DATEDIF的"ym"参数返回范围是0-11,不可能等于12) - 优化了年份为0时的格式,避免出现开头的分号
内容的提问来源于stack exchange,提问作者KRStam
相关产品推荐
相关产品推荐

