您可能知道,可以使用WEEKNUM函数返回给定日期的一年中的星期数。如果您想做相反的操作(如果您拥有的只是一年中的周数)来确定特定一周的最后一天怎么办?例如,如果要指定第37周,则要计算该特定周的最后一天的日期。

没有内置功能可以计算出所需的日期,但是可以通过多种方法来解决问题并加以解决。在这些示例中,我们假设年份在单元格A1中,而所需的星期数在单元格B1中。

第一种方法是计算所需年份的第一天,为每个星期增加7天,然后减去该年第一天的工作日数。

=DATE(A1,1,1)+B1*7-WEEKDAY(DATE(A1,1,1))

如果一周在星期六结束,则此公式将返回始终代表一周中最后一天的日期。如果您希望一周在一周的另一天结束,则公式变得更加复杂。如果希望一周在星期日结束,则只需在公式中加1:

=DATE(A1,1,1)+B1*7-WEEKDAY(DATE(A1,1,1))+1

应用相同的逻辑,您可能认为只需从公式中减去1,即可算出周五结束的几周。情况并非如此,因为您使用年初作为基础。

如果减去1,则会遇到问题,即每年的1月1日为星期六;如果减去1,则不会以一年的第一个星期五结束,而是以上一年的12月31日结束。要计算星期五结束的几周,您需要一个更复杂的公式:

=DATE(A1,1,6-WEEKDAY(DATE(A1,1,1))



((6-WEEKDAY(DATE(A1,1,1))<0)7)+1)+((B1-1)7)

由于有些年份有52个星期,有些年份有53个星期(具体取决于星期几是在星期五,星期六还是星期日),因此最好修改公式,以便他们检查返回的日期是否在同一年内您正在分析。如果您不选择此项,那么到目前为止提供的公式将很高兴地返回任何给定年份的第73周,第89周或第123周的日期-他们只需将日期调整为适当的未来年份即可。

以下是星期五结束的几周的公式:

=IF(YEAR(DATE(A1,1,6-WEEKDAY(DATE(A1,1,1))



((6-WEEKDAY(DATE(A1,1,1))<0)7)+1)+((B1-1)7))=A1, DATE(A1,1,6-WEEKDAY(DATE(A1,1,1))+((6-WEEKDAY(DATE( A1,1,1))<0)7)+1)+((B1-1)7),"")

如果计算的日期与单元格A1中指定的日期不在同一年,则该公式将不返回任何内容。以下是在星期六结束的几周的公式:

=IF(YEAR(DATE(A1,1,1)+B17-WEEKDAY(DATE(A1,1,1)))=A1, DATE(A1,1,1)+B17-WEEKDAY(DATE(A1,1,1)),"")

最后,这是在星期日结束的几周的公式:

=IF(YEAR(DATE(A1,1,1)+B17-WEEKDAY(DATE(A1,1,1))+1)=A1, DATE(A1,1,1)+B17-WEEKDAY(DATE(A1,1,1))+1,"")

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(6750)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到此技巧的版本: