Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2919|回复: 5

[已解决]如何计算员工年休假天数?

[复制链接]
匿名  发表于 2015-3-4 13:48 |阅读模式
公司年休假制度如下:
1、职工入职本公司一年后可享有带薪年休假。
2、自开始工作之日起累计工作已满1年不满10年者,年休假5天;已满10年不满20年者,年休假10天;已满20年者,年休假15天。
3、不足一年的年休假天数计算:职工当年度应享有的年休假天数=(开始享有年休假日期在当年度剩余日历天数÷365天)×职工本人年休假标准天数。
   折算后不足1天的部分不享受年休假。

       示例:如员工A,入职时间为2013年9月1日(E5),2014年9月1日入职满一年,即可享受年休假,那么2014年年度的年休假天数=(2014年9月1日到2014年12月31日的天数/365天)*年休假标准天数。
因各个员工入职时间不一样,怎么设置计算公式才能算出年休假天数呢?
感谢大家给我解答,谢谢!
最佳答案
2015-3-4 16:50
本帖最后由 suye1010 于 2015-3-4 16:58 编辑
  1. =INT(IF(ISTEXT(LOOKUP(EOMONTH(DATE(YEAR(TODAY()),1,1),11),EDATE(A2,{0;12;24;120;240})+1,{0;"NA";1;2;3})),(EOMONTH(DATE(YEAR(TODAY()),1,1),11)-EDATE(A2,12))/365,LOOKUP(EOMONTH(DATE(YEAR(TODAY()),1,1),11),EDATE(A2,{0;12;24;120;240})+1,{0;"NA";1;2;3}))*5)
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-3-4 14:19 | 显示全部楼层
  1. =IF(DATEDIF(E5,"2014-12-31","Y")<2,INT(DATEDIF(E5,"2014-12-31","YD")/365*5),LOOKUP(DATEDIF(E5,"2014-12-31","Y")-1,{1,5;10,10;20,15}))
复制代码
我的问题是,你确定是入职时间哦?按照劳动法应该是按照工作时间来计算的。否则你的年假标准天数始终是5天。(入职日期和工作时间不是一个概念哈)
回复

使用道具 举报

发表于 2015-3-4 16:50 | 显示全部楼层    本楼为最佳答案   
本帖最后由 suye1010 于 2015-3-4 16:58 编辑
  1. =INT(IF(ISTEXT(LOOKUP(EOMONTH(DATE(YEAR(TODAY()),1,1),11),EDATE(A2,{0;12;24;120;240})+1,{0;"NA";1;2;3})),(EOMONTH(DATE(YEAR(TODAY()),1,1),11)-EDATE(A2,12))/365,LOOKUP(EOMONTH(DATE(YEAR(TODAY()),1,1),11),EDATE(A2,{0;12;24;120;240})+1,{0;"NA";1;2;3}))*5)
复制代码
回复

使用道具 举报

发表于 2015-3-4 16:58 | 显示全部楼层
  1. =CHOOSE(LOOKUP(EOMONTH(DATE(YEAR(TODAY()),1,1),11),EDATE(A2,{0;12;24;120;240})+1,ROW($$1:$$5)),0,INT((EOMONTH(DATE(YEAR(TODAY()),1,1),11)-EDATE(A2,12))/365*5),5,10,15)
复制代码

点评

有笔误:ROW($$1:$$5)应为ROW($1:$5)  发表于 2015-3-5 16:08
回复

使用道具 举报

发表于 2015-3-5 15:49 | 显示全部楼层
2楼公式有两个问题:
一是不满1年的(如2014-9-1入职)计算结果也有1天年休假。
二是后面的-1应该去掉,否则有错误。如2004-12-31入职,满10年,计算结果却为5
建议改为:
=(DATEDIF(E5,"2014-12-31","Y")>0)*IF(DATEDIF(E5,"2014-12-31","Y")<2,INT(DATEDIF(E5,"2014-12-31","YD")/365*5),LOOKUP(DATEDIF(E5,"2014-12-31","Y"),{1,5;10,10;20,15}))
回复

使用道具 举报

发表于 2015-3-5 16:00 | 显示全部楼层
=CHOOSE(MATCH(DATEDIF(E5,"2014-12-31","Y"),{0,1,2,10,20}),0,INT(DATEDIF(E5,"2014-12-31","YD")/73),5,10,15)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-29 20:43 , Processed in 0.422136 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表