在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日的序列号。“