今天遇到一个问题,需要帮朋友计算公司员工的年休假,大意如下:

QQ截图20180319221341.png


根据要求,应该在excel中对工龄进行判断,并分别计算年休假,但之前没写过这么长的判断条件,于是尝试了一下

首先创建excel,并填写测试数据

QQ截图20180319221634.png

然后就是年休假的公式,条件太多了,直接在excel里编辑,容易出错,于是我现在notepad++里进行了编辑,并按需要的格式编写,效果如下:

QQ截图20180319221838.png

把代码进行了适当的缩进和折叠,看起来逻辑清楚了很多,

然后把这些代码复制到excel中

QQ截图20180319222035.png

粘贴到excel自动删减了多以的空格,变成了最后的样子。


最后附上公式:

=if(and(C2<1,year(B2)=year(now())),0

,if(c2=1,int(datedif(date(year(now()),month(b2),day(b2)),date(year(now()),12,31),"D")/365*5)

,if(and(c2>=1,c2<10),5

,if(c2=10,int(datedif(date(year(now()),1,1),date(year(now()),month(b2),day(b2)),"D")/365*5+datedif(date(year(now()),month(b2),day(b2)),date(year(now()),12,31),"D")/365*10)

,if(and(c2>10,c2<20),10

,if(c2=20,int(datedif(date(year(now()),1,1),date(year(now()),month(b2),day(b2)),"D")/365*10+datedif(date(year(now()),month(b2),day(b2)),date(year(now()),12,31),"D")/365*15)

,if(c2>20,15

,""

)))))))