我回答了一个关于测试的问题,以确定日期是否与参考日期相同,之前或甚至更早。
在这种情况下,问题是关于测试早期日期是否小于参考日期之前的5个,少于10个或10个或更多个工作日,并提到之前关于测试的问题以查看更早的日期在参考日期之前不到7天,少于14天,或14天或更多天。
我想尝试回答相关的问题,即某个特定日期是在同一个“日历周”(周日到周六),还是在之前的“日历周”,或者是在较早的日历周。
我的第一个想法是使用WEEKNUM函数,所以如果参考日期是TODAY(),那么这将是
=IF(WEEKNUM(TODAY())-WEEKNUM(A2)>1,"Old",IF(WEEKNUM(TODAY())-WEEKNUM(A2)>0,"Last week","This week"))
然而,这不适用于年度边界,因为WEEKNUM每个新年都从1开始。
在正常年份,WEEKNUM从1到53(因为一年中只有52周)。因此,看起来上述公式可以通过将年份(A2)* 52(或可能是53)添加到WEEKNUM来适应跨年度工作。
然而,考虑一个闰年,从周六开始,到周日结束。在这种情况下,WEEKNUM从1到54运行。
最后一次闰年是2000年,下一次是2028年。
我不清楚它是否适用于所有情况。
参考日期是2001年1月10日。
稍后我会尝试发布一个答案。
答案 0 :(得分:0)
对于您的方案,WEEKDAY
是您的朋友,它还允许您定义一周的开始日期。
使用公式部分(TODAY()-WEEKDAY(TODAY(),11)
和A2-WEEKDAY(A2,11)
,我们可以测试值是否相等(=当前周)或更早:
=IF((TODAY()-WEEKDAY(TODAY(),11))=(A2-WEEKDAY(A2,11)),"This Week",IF((TODAY()-WEEKDAY(today(),11)-7)=(A2-WEEKDAY(A2,11)),"Last Week","Old"))
您还可以修改比较以提供适当的周数,而不是针对IF嵌套限制运行:
=((TODAY()-WEEKDAY(TODAY(),11))-(A2-WEEKDAY(A2,11)))/7 & " Week(s) old"
幻数在本周开始时更改是工作日功能中的11
- 更改为11到17之间的任意数字,无论您身在何处,都可以开始您的星期几需要它
答案 1 :(得分:0)
已经接受了SeanC的答案作为一个好的答案,很好,它可以扩展到两个日期之间有多少个日历周的更一般的问题。
我将回到第一原则并提出以下建议(从星期日开始的一周)
=IF(INT((TODAY()-1)/7)-INT((A2-1)/7)>1,"Old",IF(INT((TODAY()-1)/7)-INT((A2-1)/7)>0,"Last week","This week"))
或从星期一开始的一周
=IF(INT((TODAY()-2)/7)-INT((A2-2)/7)>1,"Old",IF(INT((TODAY()-2)/7)-INT((A2-2)/7)>0,"Last week","This week"))
它起作用,因为日期从1900年1月1日星期日开始,表示为数字1。
但另一个答案更具可读性 - WEEKDAY函数正在为你做算术。