与 30万 粉丝一起学Excel
VIP学员的问题,要根据日期和月结时间,得到备注的效果。比如2025年11月,月结时间1,就是2025/12/31;月结时间1.5,就是2026/01/15。
如果是整数月结时间,处理起来会很简单,现在出现这种半个月的就稍微麻烦点。卢子先从简单的说起。
要获取日期推后N个月,有2个常用的公式。
借助DATE函数,重点在于+1和最后的0的理解。

=DATE($B$1,$D$1+1+D3,0)

语法:

=DATE(年,月,日)

最后为0,也就是返回上个月的最后一天。

$D$1+1才是本月最后一天。

还有一种是日期用2025/11/30,遇到这种就要配合EDATE函数。

=EDATE($E$1+1,D3)-1

语法:负数就是之前,正数就是之后。

=EDATE(日期,之前或之后几个月)

公式里面的+1和-1,是为了能够得到每个月的最后一天,防止函数出现一些小细节的错误,比如返回2025/12/30,这一天并不是最后一天。

再来看学员实际的问题,日期是拆分在多个单元格,因此用DATE函数获取。接下来,还得判断0.5这个问题,用MOD函数。

根据日期和月结时间,计算预开发票日期的2条Excel实用公式

=MOD(D3,1)

再嵌套IF函数,如果为0.5就返回15,否则0。

=IF(MOD(D3,1)=0.5,15,0)

再结合原来的DATE函数。

=DATE($B$1,$D$1+D3+1,IF(MOD(D3,1)=0.5,15,0))

最后再添加点固定的文本,可以用&连接,连接的时候日期会变成数字需要再嵌套TEXT函数。

=”RF发票(“&TEXT(DATE($B$1,$D$1+D3+1,IF(MOD(D3,1)=0.5,15,0)),”e/mm/dd”)&”前付)”

当然,&也可以去掉,进行简化。

=TEXT(DATE($B$1,$D$1+D3+1,IF(MOD(D3,1)=0.5,15,0)),”RF发票(e/mm/dd前付)”)

写公式的时候,如果不是很熟练,可以尝试将公式拆分成多个简单的公式,最后再一点点组合起来。