我想我明白了。对于我的示例,我的数据设置如下:
A B
1 Name Due Date
2 Visa 10/24/2015
对于单元格 B2,我有这个公式:
=IF(DAY(TODAY())>=25,DATE(YEAR(TODAY()),MONTH(TODAY())+1,24),DATE(YEAR(TODAY()),MONTH(TODAY()),24))
我假设您将打开电子表格并想要更新到我们当前所在的月份(因此使用Today())。
编辑:分解它-
使用=today() 将以默认格式返回今天的日期(很确定它是您的默认格式,即 mm/dd/yyyy)。因此,使用=Month(today()) 只会返回今天日期的月份...就像Year(today())、day(today()) 将返回“今天的年份”和日期,如果这有意义的话。
If 语句查看今天的数字日期是否大于或等于 25。如果是,则返回带有今天年份、今天月份加一和 24 日的日期.如果今天小于 25 日,则返回今天的年份、今天的月份和当天的 24。
希望对您有所帮助!
edit2 - 一个更强大的公式,允许您在每个月的账单到期时使用 date 保留一个单独的表格。本质上,您只是将"magic number" 24 替换为Vlookup 公式VLOOKUP(B3,$F$2:$G$4,2,FALSE)。
它的工作原理如下:
您可以创建一个表格来包含这些值,而不是公式中的“硬编码”24,每次卡更改时您都必须更改(或者您每个月的到期日不同)。我的范围 F2:G4 向您显示哪张卡在哪个日期到期。 (即签证是24号到期,所以24号之后,下个月出示)。这样,您将该公式拖到“B”列下,它会自动更新。 (看看我说的 AmEx 是如何在 10 号到期的。但是今天是 19 号,因此,我们将 11 月 10 号作为到期日。)
因此,出于复制目的,新公式为=IF(DAY(TODAY())>VLOOKUP(B3,$F$2:$G$4,2,FALSE),DATE(YEAR(TODAY()),MONTH(TODAY())+1,VLOOKUP(B3,$F$2:$G$4,2,FALSE)),DATE(YEAR(TODAY()),MONTH(TODAY()),VLOOKUP(B3,$F$2:$G$4,2,FALSE)))。 (当然,您需要根据需要更改工作表的范围)。