从 12 月到 1 月环绕一年

Wrap around year from December to January

我设置了以下公式来确定某人的生日是否在下周内。

=IF(AND(Q2>(今天()+4),Q2<(今天()+12)),"Yes","No")

*注:Q2是此人的生日,但是是2016年。(即12/20/1978实际上是12/20/2016)

这行得通,除非我大约在 12 月中旬,因为下周将延续到明年。我怎样才能得到下周的范围到下一年的一月(即从 2016 年 12 月到 2017 年 1 月)?

问题是您的解决方案取决于年份,而您应该只在月份和日期进行筛选。这可以通过使用 TEXT(...) 函数来完成。

例如: =VALUE(TEXT(I2,"mm"))

将 return 月份作为数字。这接近您要找的东西吗?

下面是使用这种方法的解决方案:

=IF(AND(VALUE(TEXT(G2,"mm"))=VALUE(TEXT(TODAY(),"mm")),VALUE(TEXT(G2,"dd"))>(VALUE(TEXT(TODAY(),"dd"))+1),VALUE(TEXT(G2,"dd"))<(VALUE(TEXT(TODAY(),"dd"))+12)),"Yes","No")

此外,此解决方案与年份无关,因此您可以使用某人的实际生日,而不必每次都更改年份。

您可以使用

这样的公式将日期放在当年
=date(2016,month(q2),day(q2))

考虑到日期加几天可以在下一年,可以用

=date(year(today()+ajustment),month(q2),day(q2))

你的整个公式看起来像这样:

=IF(AND(DATE(YEAR(TODAY()+4),MONTH(Q13),DAY(Q13))>(TODAY()+4),DATE(YEAR(TODAY()+12),MONTH(Q13),DAY(Q13))<(TODAY()+12)),"Yes","No")

现在该公式也适用于新年的日期。

您可以使用 DATEDIF 获取两个日期之间指定的年、月或日的差异。 例如:

=DATEDIF("start_date", "end_date", "d")

=DATEDIF("1/11/2011", "10/11/2011", "d") 结果:9

从头开始:

Q3 = DATEDIF(今天,生日,"d")

=IF(AND(Q3>4,Q3<12),"Yes","No")

因此您可以在 IF 语句中使用 DateDiff 来获得接下来几天的生日评估。值得注意的是,这种公式不是从下周算起的周年纪念日,只是算出生日在今天4天到12天以内的。