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培训的来源。

本技巧(11603)适用于Microsoft Excel 2007、2010、2013和2016。您可以在下面的Excel的较旧菜单界面中找到此技巧的版本:“ link:/ excel-Forcing_Dates_Forward [强制日期向前]”。