Excel 日期公式 - 返回一周中的下一个指定日期

Excel 日期公式 - 返回一周中的下一个指定日期

我需要一个能够始终返回一周中下一个指定日期的公式。

例如

IF(A1="A",RETURN NEXT FRIDAY, IF(A1="B",RETURN NEXT TUESDAY.....ETC

我需要这个的原因是我有一组帐户,每个帐户都有指定的交货日期,所以如果一个帐户被分配给 A 组,他们将在星期一交货,如果他们被分配给 B 组,交货时间为星期二等。


从这些例子中,我认为公式将根据“今天”是星期几而得出不同的日期和日期。我需要的是让 A 组中的每个帐户默认为下周一,而不管当前是星期几。因此,如果是星期一,A 组将是今天+4,如果是星期二,则将是今天+3。我希望这有意义。

答案1

你可以使用我从 Scott 的评论中得到的建议,使用与你的信相关的变量部分来获取第二天,所以如果“A”是星期一,“B”是星期二,“C”是星期三,“D”是星期四,“E”是星期五(这些是唯一的选项),那么你可以使用这个公式来得到正确的下一个工作日

=TODAY()+8-WEEKDAY(TODAY()-MATCH(A1,{"A","B","C","D","E"},0))

您最初说您想排除假期,但如果 A1 是“A”并且下周一是假期,那么应该在哪一天交货?

如果是星期一之后的下一个工作日(无论是星期几),那么您可以将上述内容合并到 WORKDAY 函数中,如下所示

=WORKDAY(TODAY()+8-WEEKDAY(TODAY()-MATCH(A1,{"A","B","C","D","E"},0))-1,1,H$1:H$10)

其中节假日列在 H1:H10

如果您总是需要在周一送货,那么如果下周一是假期,那应该是下周一(或下周一不是假期),那么您可以使用 WORKDAY.INTL 函数来执行此操作(仅在 Excel 2010 及更高版本中可用)

=WORKDAY.INTL(C$1,1,REPLACE("1111111",MATCH(A1,{"A","B","C","D","E"},0),1,0),H$1:H$10)

答案2

工作日(某个日期

返回星期几:星期日=1,星期一=2,...,星期六=7。因此

TODAY()-WEEKDAY(TODAY())

是前一个星期六,所以

TODAY()-WEEKDAY(TODAY())+2

是本周的星期一(使用 3、4、5 或 6 表示星期二、...星期五)。我是在星期二写这篇文章的,所以本周的星期一是昨天,本周的星期二是今天。要获得下一个一个(例如,下周二),使用

TODAY()-WEEKDAY(TODAY())+3 + IF(WEEKDAY(TODAY())>=3,7)

祝你跳过假期顺利!:)

相关内容