Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 查看日期是在同一个日历周还是在上一个日历周_Excel_Date_Calendar_Excel Formula - Fatal编程技术网

Excel 查看日期是在同一个日历周还是在上一个日历周

Excel 查看日期是在同一个日历周还是在上一个日历周,excel,date,calendar,excel-formula,Excel,Date,Calendar,Excel Formula,我回答了一个关于测试的问题,看看与参考日期相比,某个日期是否在同一周、上一周或甚至更早的一周 在这种情况下,问题是关于测试,以确定较早日期是否在参考日期前5天、10天或10天或以上,并参考先前关于测试的问题,以确定较早日期是否在参考日期前7天、14天或14天或以上 我想尝试回答一个相关的问题,即给定的日期是在同一个“日历周”周日到周六,还是在前一个“日历周”,还是在更早的日历周 我的第一个想法是使用WEEKNUM函数,所以如果参考日期是今天,这将是 =IF(WEEKNUM(TODAY())-WE

我回答了一个关于测试的问题,看看与参考日期相比,某个日期是否在同一周、上一周或甚至更早的一周

在这种情况下,问题是关于测试,以确定较早日期是否在参考日期前5天、10天或10天或以上,并参考先前关于测试的问题,以确定较早日期是否在参考日期前7天、14天或14天或以上

我想尝试回答一个相关的问题,即给定的日期是在同一个“日历周”周日到周六,还是在前一个“日历周”,还是在更早的日历周

我的第一个想法是使用WEEKNUM函数,所以如果参考日期是今天,这将是

=IF(WEEKNUM(TODAY())-WEEKNUM(A2)>1,"Old",IF(WEEKNUM(TODAY())-WEEKNUM(A2)>0,"Last week","This week"))
然而,这并不能跨越年度界限,因为每个新年的周数从1开始

在正常年份,WEEKNUM从1到53,因为一年中只有52周多一点。因此,通过将year2*52或可能53添加到WEEKNUM,上述公式似乎可以适应跨年度边界的工作

然而,考虑闰年从星期六开始,星期日结束。在本例中,WEEKNUM从1运行到54

上一个闰年是2000年,下一个是2028年

我不清楚它是否适用于所有情况

参考日期为2001年1月10日

我稍后会尝试发布答案。

对于您的场景,工作日是您的朋友,它还允许您定义一周的开始日期

使用公式部分TODAY-WEEKDAYTODAY,11和A2-WEEKDAYA2,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之间的任意数字,以在任何需要的地方开始一周中的一天

接受了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表示

但另一个答案更具可读性——平日函数正在为您进行算术运算