【问题标题】:Wrap around year from December to January从 12 月到 1 月环绕一年
【发布时间】:2016-12-28 19:47:47
【问题描述】:

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

=IF(AND(Q2>(TODAY()+4),Q2

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

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

【问题讨论】:

    标签: excel date calendar formula monthcalendar


    【解决方案1】:

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

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

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

    从头开始:

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

    =IF(AND(Q3>4,Q3

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

    【讨论】:

      【解决方案2】:

      你可以用一个公式把日期放在当年

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

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

      【讨论】:

      • 这让我回到原来的问题
      • 我在发布我的第一个公式后进行了一些编辑。这个现在可以跨年份变化而无需任何修改。
      • 我认为成功了!
      【解决方案3】:

      问题在于您的解决方案取决于年份,而您应该只在月份和日期进行筛选。这可以通过使用 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")
      

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

      【讨论】:

      • 你能详细说明一下吗?或者把它放在我展示的公式的上下文中。谢谢!
      • 当您尝试比较日期还有多少天时,文本不会有太大用处。
      • 当然会。您只需比较月份和日期即可使其生效。此外,转换为数字会有所帮助(请参阅最新编辑)。
      • 这就是我所拥有的: Col P:文本格式的日期{即。单元格 P2 = 1-2} Col Q:日期格式的生日{即。 =DATEVALUE(P2)} Col R: 下周是生日吗? {IE。 =IF(AND(Q2>(TODAY()+4),Q2
      • 那你应该选择 Jocimar 的回答。
      猜你喜欢
      • 2021-07-13
      • 1970-01-01
      • 2013-06-20
      • 2016-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多