ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 特别复杂的年休假-请教!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-6-5 17:14 | 显示全部楼层
对19楼公式总结一下:
根据13楼的逻辑关系,列出表达式,对表达式运算(精简公式,我比较懒,没有简化)

另外:算法一个是加法,一个是减法,19楼用了减法,我用的是加法。里面也用到了LOOKUP和TEXT函数的一些用法。楼主有不懂的地方可以向19楼请教,或者问我也可以。

TA的精华主题

TA的得分主题

发表于 2009-6-5 17:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 曦妈 于 2009-6-5 17:11 发表
是挺累的,但是在思考当中发现了excelhome这个宝贝, 开心得不得了!
感谢两位大虾的顶力相帮,本人不胜感激!真的见到高手啦,谢谢!还有一个关于那个
关于法定的计算方法(条件1:工作满1年不满10年的,年休假5天 ...

建议还是传EXCEL附件!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-5 17:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢版主,我大概看明白了,我挺喜欢19楼那张表的,有点象公车价钱的那个表,非常清楚!能否帮我看看20楼那个公式,我琢磨坏了都不对。

TA的精华主题

TA的得分主题

发表于 2009-6-5 17:32 | 显示全部楼层
原帖由 曦妈 于 2009-6-5 17:26 发表
谢谢版主,我大概看明白了,我挺喜欢19楼那张表的,有点象公车价钱的那个表,非常清楚!能否帮我看看20楼那个公式,我琢磨坏了都不对。

20楼公式与年休假相关法律要求不符合。特别是国家最近一个问题的复函。
如果简单更改就是:
  1. =SUM(5*(DATEDIF($D2,DATE(E$1,12,31),"Y")>={1,10,20}))
复制代码
请参考:http://club.excelhome.net/thread-438049-1-2.html

http://club.excelhome.net/viewthread.php?tid=357765  第六楼。

[ 本帖最后由 jackeroo 于 2009-6-5 17:45 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-5 17:47 | 显示全部楼层
好的,谢谢!正在研究,但是还是把我的也发出来看看。。。

Annual Leave 6509.rar

4.84 KB, 下载次数: 43

TA的精华主题

TA的得分主题

发表于 2009-6-6 08:15 | 显示全部楼层
原帖由 曦妈 于 2009-6-5 17:47 发表
好的,谢谢!正在研究,但是还是把我的也发出来看看。。。


第二个公式是数组公式,要按CTRL+SHIFT+ENTER

关键是不知道您还有什么问题?呵呵。好像你的问题已经解答了。

TA的精华主题

TA的得分主题

发表于 2009-6-6 15:53 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
很复杂的公式,学习了. 

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-6 18:52 | 显示全部楼层
原帖由 jackeroo 于 2009-6-6 08:15 发表


第二个公式是数组公式,要按CTRL+SHIFT+ENTER

关键是不知道您还有什么问题?呵呵。好像你的问题已经解答了。


我的问题是我的那个附件里的两种方法对于计算2009年的年假都返回错误值,我没有找出方法解决这个问题,请各位高手帮忙看看。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-8 12:25 | 显示全部楼层
还请办忙看看为什么09年的返回值错误, 谢谢!

Annual Leave 6509.rar

4.86 KB, 下载次数: 20

TA的精华主题

TA的得分主题

发表于 2009-6-9 11:56 | 显示全部楼层
出错是因为Datedif函数,如果起始日期比结束日期大的话,就会出现#NUM!错误,为了解决这个问题,可以变通处理一下公式:

  1. SUM(5*(DATEDIF($B7,DATE($D$3+1,{1,2,3,4,5,6,7,8,9,10,11,12},1),"Y")-1>={1;10;20}))/12-0.49
复制代码


通过上面红色部分的处理,可以保证起始日期小于结束日期。


然而,外层Ceiling()函数,如果出现负值的话,也会出现#NUM!错误,所以,可以改用Round()来嵌套,或者使用If()函数来辅助判断。


  1. C7:
  2. =ROUND(SUM(5*(DATEDIF($B7,DATE($D$3+1,{1,2,3,4,5,6,7,8,9,10,11,12},1),"Y")-1>={1;10;20}))/12-0.49,1)
复制代码


上面的这个公式应该没有问题了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 14:26 , Processed in 0.044478 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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