我想在excel中返回上个月每天的第30天。我用过:
EOMONTH(A1,-1)
但是这将永远回到prevois月的最后一天。你怎么能这样做,例如6月30日将返回5月30日,而不是'EOMONTH'函数返回的5月31日。
由于
答案 0 :(得分:4)
你也许可以使用IF()
和TEXT()
来做到这一点。
=IF(TEXT(EOMONTH(A1,-1),"dd")="31",EOMONTH(A1,-1)-1,EOMONTH(A41,-1))
如果EOMONTH(A1,-1)
的日期为31
,则请减少一天,否则,请自行查看该日期。
答案 1 :(得分:3)
这是另一个也将处理2月的解决方案:
=MIN(DATE(YEAR(A1),MONTH(A1)-1,30),EOMONTH(A1,-1))
换句话说,取上个月的第30天,或前一个月的最后一天,以较早者为准。请注意,DATE()
会正确处理1月份的日期。根据帮助,在这种情况下DATE()
“...从指定年份的第一个月中减去该月数加上1的幅度。例如,DATE(2008,-3,2)返回代表2007年9月2日的序列号。“
答案 2 :(得分:3)
与Brian的解决方案类似,但缩短了......
=MIN(EOMONTH(A1,{-2,-1})+{30,0})