Excel函数确定一个月的最后一个星期五

时间:2009-08-03 10:44:10

标签: excel datetime

我正在寻找一个Excel函数来返回给定日期的一个月的最后一个星期五。

即:作为输入的月份中的任何日期将给出上周五的日期作为输出。

14-July-09 should give 31-July-09
7-March-05 should give 35-March-09

8 个答案:

答案 0 :(得分:4)

@Toomas上面的答案的基础上,我不得不对Excel 2007进行一些修改,但提出了以下建议:

=EOMONTH(A1,0)-MOD(WEEKDAY(EOMONTH(A1,0))+1,7)

假设星期五返回的WEEKDAY为6,然后应用转移的MOD 7来实现正确的日期。

答案 1 :(得分:2)

试试这个公式:

=IF(WEEKDAY(EOMONTH(A5;0);16)=7;EOMONTH(A5;0);EOMONTH(A5;0)-WEEKDAY(EOMONTH(A5;0);16))

输入您要查找一个月中最后一个星期五的A5日期值。

答案 2 :(得分:1)

以下公式为单元格A1中的日期提供此选项:

=DATE(YEAR(A1),MONTH(A1)+1,0)+MOD(-WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,0),2)-2,-7) 

答案 3 :(得分:0)

您可以尝试= DATE(年(A1),月(A1)+1,1)-1 +选择(周末(日期(年(A1),月(A1)+1,1)-1), -2,-3,-4,-5,-6,0,-1)找到该月的最后一个星期五。假设A1有日期。

答案 4 :(得分:0)

我来到这里寻找公式,以获得过去最近的星期五,结果证明是=TODAY()-WEEKDAY(TODAY())-1

答案 5 :(得分:0)

=EOMONTH(TODAY(),0)-WEEKDAY(EOMONTH(TODAY(),0))-1

这给出了本月的最后一个星期五。您可以将Today()的两个实例替换为所需的任何日期,或者将其日期替换为其他任何月份的最后一个星期五的单元格引用。

答案 6 :(得分:0)

万一明年(或未来几年)有人需要这样做:

=EOMONTH(DATE(YEAR(TODAY())+1,MONTH(TODAY()),1),0)-MOD(WEEKDAY(EOMONTH(DATE(YEAR(TODAY())+1,MONTH(TODAY()),1),0))+1,7)

答案 7 :(得分:-1)

真棒!基本上,就像试图找到该月的第一个或第二个星期一一样,

=DATE(TheYear,5,1)+CHOOSE(WEEKDAY(DATE(TheYear,5,1)),1,0,6,5,4,3,2)

返回该月的第一个星期一,在本例中为May

但是为了找到该月的 last 工作日,在公式中,您将从下个月开始并减去

=DATE(TheYear,6,1)-1+CHOOSE(WEEKDAY(DATE(TheYear,6,1)),-6,-5,-4,-3,-2,-1,0)

返回5月的最后一个星期一

我有一个名为TheYear的单元格,我在其中输入我正在使用的年份,但您可以指向您想要的年份(例如A1)。

我不知道为什么指向星期几的指针是相反的顺序而是找到那天(例如星期二而不是星期一),改变这些数字的顺序,但它们必须保持有序。例如,11月的第4个星期四:

=DATE(TheYear,11,1)+21+CHOOSE(WEEKDAY(DATE(TheYear,11,1)),4,3,2,1,0,6,5)