我正在寻找一个Excel函数来返回给定日期的一个月的最后一个星期五。
即:作为输入的月份中的任何日期将给出上周五的日期作为输出。
14-July-09 should give 31-July-09
7-March-05 should give 35-March-09
答案 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)