从十二月到一月大约一年

我有下面的公式来确定是否有人的生日在下周内出现。

= IF(AND(Q2>(TODAY()+ 4),Q2 <(TODAY()+ 12)), “是”, “否”)

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

这个工作,除了当我大概到12月中下旬,因为下一周将溢出到明年。 我怎样才能得到下一个星期的范围(即从2016年12月到2017年1月)呢?

你可以用当年的公式来表示当年的date

=date(2016,month(q2),day(q2)) 

考虑到date加上几天可以在明年,你可以使用

 =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") 

现在这个公式也适用于新年的date。

您可以使用DATEDIF获取两个date之间在指定的年份,月份或天数方面的差异。 例如:

= DATEDIF(“start_date”,“end_date”,“d”)

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

刮:

Q3 = DATEDIF(今天,生日,“d”)

= IF(AND(Q3> 4,Q3 <12), “是”, “否”)

所以你可以在你的IF语句中使用DateDiff来在接下来的日子里进行生日评估。 值得注意的是,你没有得到这样一个公式的下周的周年纪念,只是得到那些生日之间发生在今天的4天之间,距离今天不到12天。

问题是,你的解决scheme是依赖于年份,当你只应该在月份和date进行筛选。 这可以通过使用TEXT(…)函数来完成。

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

将作为一个数字返回该月份。 这是接近你要找的东西吗?

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

 =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") 

此外,这个解决scheme是独立于年的,所以你可以使用某人的实际生日,而不必每次都改变一年。