2016-12-28 115 views
0

我设置了以下公式来确定某人的生日是否会在下周内到来。从12月到1月的大约年份

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

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

这个工程,除了当我大致到12月中旬,因为下一周将溢出到下一个年。我如何能够在下一周的一月份(即从2016年12月到2017年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") 

现在的公式在新的一年工作的日期,T OO。

+0

这让我回到我的原始问题 – anra

+0

我发布我的第一个公式后做了一些编辑。这一个现在可以在没有任何修改的情况下跨越一年的变化而工 – teylyn

+0

我认为这样做了! – anra

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

此外,该解决方案是今年独立的,所以你可以用别人的实际生日,不必每次都改变的一年。

+0

请您详细说明。或者把它放在我展示的公式的上下文中。谢谢! – anra

+0

当您尝试比较日期离开的日期时,文本不会太多用处。 – teylyn

+0

当然会的。你只需要比较月份和日期以使其生效。此外,转换为数字有帮助(请参阅最新的编辑)。 –

3

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

= DATEDIF( “起始日期”, “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天。

相关问题