从12月到1月包裹一年

时间:2016-12-28 19:47:47

标签: excel date calendar formula monthcalendar

我设置了以下公式,以确定某人的生日是否会在下周出现。

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

*注意:Q2是这个人的生日,但在2016年。(即.2072 / 2078实际上是2016年12月20日)

这是有效的,除非我大概在12月中旬到达,因为下周将会进入明年。我怎样才能让下周的范围进入下一年的1月(即2016年12月到2017年1月)?

3 个答案:

答案 0 :(得分:3)

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

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

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

Scratch:

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

= IF(AND(Q3→4,Q3< 12)"是""否&#34)

因此,您可以在IF语句中使用DateDiff在接下来的几天内进行生日评估。值得注意的是,从下周开始,你不会用这种公式获得周年纪念日,只是将那些生日日期发生在今天的4天到今天不到12天之间。

答案 1 :(得分:1)

您可以使用类似

的公式将日期放在当前年份
=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")

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

答案 2 :(得分:0)

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

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

将月份作为数字返回。这接近你想要的吗?

以下是使用此方法的解决方案:

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

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