Roger在Excel工作表中跟踪http://www.formville.com/C2_free-invoice-forms.html[invoice]s。所有发票都必须在该月的28日前提交,Roger想知道是否有一种方法可以强制日期始终“跳到”下一个28日。

强制向前日期的最干净方法是创建一个公式,该公式将检查单元格中的日期,然后将该日期强制为下一个期望的日期,例如28日。以下公式是一个很好的开始:

=IF(DAY(A1)>28,DATE(YEAR(A1),MONTH(A1)+1,28),DATE(YEAR(A1),MONTH(A1),28))

此公式检查单元格A1中的日期。如果日期的DAY值大于28,则该公式将构造并返回一个等于下个月28号的日期。如果小于或等于28,则返回当月28号。

但是,还有一种更短的方法来呈现可接受的公式-一种完全摆脱IF函数的公式:

=DATE(YEAR(A1),MONTH(A1)+(DAY(A1)>28),28)

这使用当前年份作为年份,并且日期始终为28。月份使用布尔计算。如果日期大于28,则(Day(A1)> 28)将为TRUE,并将计算为1,从而在当前月份中加1。如果小于或等于28,则为FALSE并计算为0,仅计算当前月份。

如果您不想“严格”只给某些人一天(2012年4月27日将给到期日为2012年4月28日),则可以计划使用以下公式至少给他们一周:

=DATE(YEAR(A1),MONTH(A1)+(DAY(A1)>21),28)

这将使当月28日为1日至21日,但以后的日期将跳至下个月的28日。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(2410)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: