【发布时间】:2010-11-16 08:09:26
【问题描述】:
我正在寻找一个 Excel 函数来返回给定日期一个月中的最后一个星期五。
ie:当月中的任何日期作为输入都会给出上周五的日期作为输出。
14-July-09 should give 31-July-09
7-March-05 should give 35-March-09
【问题讨论】:
我正在寻找一个 Excel 函数来返回给定日期一个月中的最后一个星期五。
ie:当月中的任何日期作为输入都会给出上周五的日期作为输出。
14-July-09 should give 31-July-09
7-March-05 should give 35-March-09
【问题讨论】:
在上面的@Toomas 答案的基础上,我不得不对 Excel 2007 进行一些修改,但想出了以下内容:
=EOMONTH(A1,0)-MOD(WEEKDAY(EOMONTH(A1,0))+1,7)
假设星期五返回的 WEEKDAY 是 6,然后应用移位的 MOD 7 来获得正确的日期。
【讨论】:
试试这个公式:
=IF(WEEKDAY(EOMONTH(A5;0);16)=7;EOMONTH(A5;0);EOMONTH(A5;0)-WEEKDAY(EOMONTH(A5;0);16))
输入您要查找一个月中最后一个星期五的 A5 日期值。
【讨论】:
以下公式为单元格 A1 中的日期实现了这一点:
=DATE(YEAR(A1),MONTH(A1)+1,0)+MOD(-WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,0),2)-2,-7)
【讨论】:
我来这里是为了寻找过去最近的星期五的公式,结果是=TODAY()-WEEKDAY(TODAY())-1
【讨论】:
=EOMONTH(TODAY(),0)-WEEKDAY(EOMONTH(TODAY(),0))-1
这给出了本月的最后一个星期五。您可以将 Today() 的两个实例替换为您喜欢的任何日期,或者使用日期为任何其他月份的最后一个星期五的单元格引用。
【讨论】:
如果有人需要在明年(或未来几年)这样做:
=EOMONTH(DATE(YEAR(TODAY())+1,MONTH(TODAY()),1),0)-MOD(WEEKDAY(EOMONTH(DATE(YEAR(TODAY())+1,MONTH(TODAY()),1),0))+1,7)
【讨论】:
这里会显示当月的最后一个星期五。
如果日期是过去的,它将显示下个月的最后一个星期五。
如果现在是 12 月,它会显示明年 1 月的星期五。
=IF(DATE(YEAR(TODAY()),MONTH(TODAY())+1,0)+MOD(-WEEKDAY(DATE(YEAR(TODAY()),MONTH(TODAY())+1,0),2)-2,-7)>=TODAY(), DATE(IF(MONTH(TODAY())+1>12,YEAR(TODAY()+1),YEAR(TODAY())),MONTH(TODAY())+1,0)+MOD(-WEEKDAY(DATE(YEAR(TODAY()),MONTH(TODAY())+1,0),2)-2,-7), DATE(IF(MONTH(TODAY())=12,YEAR(TODAY())+1,YEAR(TODAY())),MONTH(IF(MONTH(TODAY())=12,1,MONTH(TODAY())))+1,0)+MOD(-WEEKDAY(DATE(IF(MONTH(TODAY())=12,YEAR(TODAY())+1,YEAR(TODAY())),MONTH(IF(MONTH(TODAY())=12,1,MONTH(TODAY())))+1,0),2)-2,-7))
【讨论】:
你可以试试
=DATE(YEAR(A1),MONTH(A1)+1,1)-1+CHOOSE(WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,1)-1),-2,-3,-4,-5,-6,0,-1)
查找本月的最后一个星期五。假设 A1 有日期。
【讨论】:
太棒了!基本上,就像试图找到每月的第一个或第二个星期一一样,
=DATE(TheYear,5,1)+CHOOSE(WEEKDAY(DATE(TheYear,5,1)),1,0,6,5,4,3,2)
返回每月的第一个星期一,在本例中为五月
但要找到该月的最后一个个工作日,在公式中,您从下个月开始并减去
=DATE(TheYear,6,1)-1+CHOOSE(WEEKDAY(DATE(TheYear,6,1)),-6,-5,-4,-3,-2,-1,0)
返回五月的最后一个星期一
我有一个名为 TheYear 的单元格,我在其中输入我正在使用的年份,但你可以指向任何你想要年份的单元格(例如 A1)。
我不知道为什么指向星期几的指针顺序相反,但要找到日期(例如星期二而不是星期一),更改这些数字的顺序,但它们必须保持顺序。例如,11 月的第四个星期四:
=DATE(TheYear,11,1)+21+CHOOSE(WEEKDAY(DATE(TheYear,11,1)),4,3,2,1,0,6,5)
【讨论】: