我设置了以下公式,以确定某人的生日是否会在下周出现。
= IF(AND(Q2>(TODAY()+ 4),Q2≤(TODAY()+ 12)), “是”, “否”)
*注意:Q2是这个人的生日,但在2016年。(即.2072 / 2078实际上是2016年12月20日)
这是有效的,除非我大概在12月中旬到达,因为下周将会进入明年。我怎样才能让下周的范围进入下一年的1月(即2016年12月到2017年1月)?
答案 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")
此外,此解决方案与年份无关,因此您可以使用某人的实际生日而不必每次更改年份。