ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1990|回复: 8

[求助] 年假计算公式

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-12-15 11:42 | 显示全部楼层 |阅读模式

  公司的年假规定是:

1.       1. 从入职开始计算,不满一年有6天(即每个月有0.5天),一年以上有12天。

2.               2.   每个月15号(含15号)为分界,15号前入职当月有0.5天,15号后入职当月为0天。

              例子:假定2015-10-12入职,截至2015-12-31,可以有2.5天年假;

                                    2015-10-16入职,截至2015-12-31,可以有2天年假。
       请问各位通用公式是??

Annual Leave Control Y2015_Oct.rar

19.77 KB, 下载次数: 58

TA的精华主题

TA的得分主题

发表于 2015-12-17 17:24 | 显示全部楼层
D2=
包含14年剩余年假
42005为2015/1/1的日期值
  1. =IF(B2<=42005,12,(12-MONTH(B2)-1)*0.5+IF(DAY(B2)<=15,0.5,0))+C2
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-12-20 16:29 | 显示全部楼层
izen 发表于 2015-12-17 17:24
D2=
包含14年剩余年假
42005为2015/1/1的日期值

谢谢izen提供的公式,但是在实际操作中发现一个问题:

公式默认2015-1-1之前都享有12天年假,但是实际操作中,满一年才有12天
即2015-6-16日入职,截至2015-12-31,应该有3天=(7-12月)*0.5天
                               截至2016-12-31,应该有9天=(1-6月)*0.5天+(7-12月)*1天

或2015-6-15日入职,截至2015-12-31,应该有3.5天=(6-12月)*0.5天
                               截至2016-12-31,应该有9天=(1-6月)*0.5天+(7-12月)*1天

或2014-12-11日入职,截至2014-12-31,应该有0.5天=12月*0.5天
                                截至2015-12-31,应该有6天=(1-12月)*0.5天
                                截至2016-12-31,应该有12天=(1-12月)*1天

谢谢解决15号临界点的问题
因为这个公式太专业了,我不知道从何下手改起,嘿嘿。

TA的精华主题

TA的得分主题

发表于 2015-12-21 00:30 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
zoeousy 发表于 2015-12-20 16:29
谢谢izen提供的公式,但是在实际操作中发现一个问题:

公式默认2015-1-1之前都享有12天年假,但是实际 ...

=IF(B2<=41640,12,IF(B2<=42005,(12-MONTH(B2)-1)*1+MONTH(B2)*0.5+IF(DAY(B2)<=15,1,0),(12-MONTH(B2))*0.5)+IF(DAY(B2)<=15,0.5,0))+C2
根据你描述的意思应该是以上公式,你再次检验下
你说
或2014-12-11日入职,截至2014-12-31,应该有0.5天=12月*0.5天
                                截至2015-12-31,应该有6天=(1-12月)*0.5天-----应该是6.5天,截止2015/12/11 就满一年年假5.5天,剩下的一个月12月应该是1天,共计6.5天,到2015/12/31

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-12-21 13:42 | 显示全部楼层
本帖最后由 zoeousy 于 2015-12-21 13:53 编辑

谢谢izen提供的新的公式 ,而且发现我逻辑上的问题:

2014-12-11日入职,截至2014-12-31,应该有0.5天=12月*0.5天
                             截至2015-12-31,应该有6天=(1-12月)*0.5天-----应该是6.5天,截止2015/12/11 就满 一年年假5.5天,剩下的一个月12月应该是1天,共计6.5天

谢谢!!

但是每月15日后的计算比较诡异,为什么会相差一天??我的脑筋也转不过来,这个应该如何改呢?

名字     入职日期             2015原本计算年假(c)     公式计算的年假(D)    差异(C-D)
1    2014.02.26    11天                   10天           1天     
  2         2014.03.27          10.5天                                  10天                   1天
  3         2014.04.16          11天                                     9天                     1天
  4         2014.11.23          6.5天                                    5.5天                  1天
  5         2014.12.19          6天                                       5天                    1天
  6         2014.12.22          6天                                       5天                     1天


年假.rar

14.59 KB, 下载次数: 45

TA的精华主题

TA的得分主题

发表于 2015-12-21 17:54 | 显示全部楼层
zoeousy 发表于 2015-12-21 13:42
谢谢izen提供的新的公式 ,而且发现我逻辑上的问题:

2014-12-11日入职,截至2014-12-31,应该有0.5天= ...

=IF(B2<=41640,12,IF(B2<=42005,(12-MONTH(B2))*1+MONTH(B2)*0.5,(12-MONTH(B2))*0.5)+IF(DAY(B2)<=15,0.5,0))

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-12-22 09:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

谢谢izen,这个公式完全解决的计算年假的问题。

请问可以解释一下下这公式的计算原理么。。

TA的精华主题

TA的得分主题

发表于 2015-12-22 14:04 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2015-12-22 17:18 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
zoeousy 发表于 2015-12-22 09:34
谢谢izen,这个公式完全解决的计算年假的问题。

请问可以解释一下下这公式的计算原理么。。

这个就是基础的IF函数,主要分清逻辑关系。
month()函数取得日期所在的月,day()取得日期配合if()函数判断15号问题,
还有windows excel采用的是1900日期系统,1900/1/1 就是数字1,你输入个日期 同时按住ctrl+shift+1(Q键左上)就得到了一个数字,用这个数字判断入职日期。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-29 02:58 , Processed in 0.039175 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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