Excel-公司每月20号发工资,如果恰逢20号是周末,则提前一个工作日发放,

如题所述

输入以下公式,然后向下填充公式

=IF(WEEKDAY(DATE(2014,ROW(A1),20),2)=6,DATE(2014,ROW(A1),19),DATE(2014,ROW(A1),20))

 

详见附图

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-19
首先判断这个日期是否是周六或周日,用weekdayWEEKDAY(B2,2)<6
是,返回该日; 不是,提前一个工作日(用workday函数WORKDAY(A2,-1))。
结合if函数,结果如下:
=IF(WEEKDAY(A2,2)<6,A2,WORKDAY(A2,-1))
第2个回答  2018-05-15

函数      =IF(WEEKDAY(DATE(2014,ROW(A1),20),2)>5,DATE(2014,ROW(A1),20)-WEEKDAY(DATE(2014,ROW(A1),20),2)+5,DATE(2014,ROW(A1),20))

解释:=ROW(A1) 输出为1  来充当月份   2014,ROW(A1),20即为2014/1/20

=WEEKDAY(DATE(2014,ROW(A1),20),2)   输出2014/1/20为星期几的数值

=IF(目标日期2014/1/20为星期X>5是周末,输出【原日期-X+5】,否则输出原日期2014/1/20)

,其中【原日期-X】的含义是原日期的上周末是几号,再加5即为这周五的日期//举例,2014/7/20为星期7,往前数7天是上周的星期天,再加5天是这周星期5,也就是发放工资的日子2014/7/18!

最后填充单元格:选中A2单元格,鼠标移至单元格右下角显示“+”时,双击完成!