在excel中返回前一个月的第30天
我想在excel中返回前一个月每天的第30天。 我用了:
EOMONTH(A1,-1)
但是,这将永远回到过去一个月的最后一天。 你怎么能这样做,例如6月30日将返回5月30日,而不是由“EOMONTH”函数返回的5月31日。
谢谢
你也许可以使用一个IF()
和一个TEXT()
来做到这一点。
=IF(TEXT(EOMONTH(A1,-1),"dd")="31",EOMONTH(A1,-1)-1,EOMONTH(A41,-1))
如果EOMONTH(A1,-1)
的date是31
,则减去一天,否则,自己取这个date。
类似布赖恩的解决scheme,但缩短….
=MIN(EOMONTH(A1,{-2,-1})+{30,0})
这是另外一个解决二月份问题的scheme:
=MIN(DATE(YEAR(A1),MONTH(A1)-1,30),EOMONTH(A1,-1))
换句话说,就是上个月的第30天,或上个月的最后一天,以较早者为准。 请注意, DATE()
将正确处理一月份date。 根据帮助,在这种情况下, DATE()
“…从指定的年份的第一个月中减去该月数加上1的数量。例如,DATE(2008,-3,2)返回代表2007年9月2日的序列号。“