Excel精英培训网

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

[已解决]请教各位高手

[复制链接]
发表于 2012-8-31 18:22 | 显示全部楼层 |阅读模式
我想生成一个年假公式,例如:2010年5月1日入职,第一年有5天年假,第二年有6天年假,计算11年的年假

11年的年假计算为:5/365*(11年1月1日至11年4月30日的天数)+6/365*(11年5月1日至11年12月31日的天数),得出来的数满半天不满一天的按一天计算,不满半天的按半天计

请教各位高手,这个公式怎么设置啊?
最佳答案
2012-8-31 18:37
本帖最后由 hwc2ycy 于 2012-8-31 18:39 编辑
  1. =ROUNDUP(5/365*DATEDIF("2011/1/1","2011/4/30","d")+6/365*DATEDIF("2011/5/1","2011/12/31","d"),0)
复制代码
  1. =CEILING(5/365*DATEDIF("2011/1/1","2011/4/30","d")+6/365*DATEDIF("2011/5/1","2011/12/31","d"),0.5)
复制代码
第二个公式应该合你要求,第一个直接进1了。
发表于 2012-8-31 18:37 | 显示全部楼层    本楼为最佳答案   
本帖最后由 hwc2ycy 于 2012-8-31 18:39 编辑
  1. =ROUNDUP(5/365*DATEDIF("2011/1/1","2011/4/30","d")+6/365*DATEDIF("2011/5/1","2011/12/31","d"),0)
复制代码
  1. =CEILING(5/365*DATEDIF("2011/1/1","2011/4/30","d")+6/365*DATEDIF("2011/5/1","2011/12/31","d"),0.5)
复制代码
第二个公式应该合你要求,第一个直接进1了。
回复

使用道具 举报

发表于 2012-8-31 18:49 | 显示全部楼层
年假都是按年计算的,哪有你这样算的呢?
假设:A1是入职日期,B1是当年最后日期(这里假设是2012-12-31),C1是标准每年几天
公式:max(roundup(datedif(A1,B1,"d")/365*C1*2,)/2,5)
如果C1是阶梯标准,则公式改为:
lookup(datedif(A1,B1,"d")/365,{9.999,14.999,19.999},{5,10,15})  ps:本公式举例是10年以下5天,15年10天,20年15天。

回复

使用道具 举报

 楼主| 发表于 2012-8-31 20:59 | 显示全部楼层
hwc2ycy 发表于 2012-8-31 18:37
第二个公式应该合你要求,第一个直接进1了。

谢谢
但是,如果他是其他10年其他日期入职的,工作满一年的那个日期(即上个例子中的2011.4.30)能用公式代替,自动计算吗?
回复

使用道具 举报

发表于 2012-8-31 21:07 | 显示全部楼层
ashley@ 发表于 2012-8-31 20:59
谢谢
但是,如果他是其他10年其他日期入职的,工作满一年的那个日期(即上个例子中的2011.4.30)能用公式 ...

可以啊,直接把日期填在别的单元格,公式改下就成了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 15:06 , Processed in 0.341628 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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