|
本帖最后由 rainssoul 于 2018-7-11 14:34 编辑
一、理解题意
按题主的意思,目的是 最后计算从现在(today())到年底,员工还剩余的年假数;
每个员工享有的福利是:
1、社会工龄:
(1)员工累计社会工龄已满1年不满10年的,年休假5天;
(2)已满10年不满20年的,年休假10天;
(3)已满20年(及以上)的,年休假15天。
(已满10年及以上者需在入职时提交社保缴纳流水证明)
2、单位福利年假
(1)在公司的连续服务时间,满一年后可享受 5 天公司福利年休假;
(2)服务时间每增加一年,公司福利年休假增加 1 天。
3、年休假计算公式
(1)法定年休假(社会工龄)和公司年休假(单位福利)合计不得超过 15 天;合计数超过上述标准的相应减少公司福利年休假。
(2)根据当年剩余天数占全年的比例计算应享受年休假天数。(计算结果,按照四舍五入原则取到整数)
(3)使用期限当年的公司福利年假有效期至当年12月31日,逾期未使用的可结转到次年度3月底之前使用;
二、计算公式
原表中,各公式 已经计算出相关数值,只需在这此基础上计算 年休假合计 即可;公式为:
IF((F5+G5)>=15,DATEDIF(TODAY(),$J$3,"d")/365*15,DATEDIF(TODAY(),$J$3,"d")/365*(F5+G5))
如下图
三、补充 VBA写法
使用VBA计算:代码如下
- Sub 计算年假()
- Dim i, j, k, m As Long
- With ActiveSheet
- j = [e65536].End(xlUp).Row '取最大行
- m = DateDiff("d", Now(), .Cells(4, 10)) '取从现在到年底的天数
- For i = 5 To j
- '总休假天数判断
- If .Cells(i, 6) + .Cells(i, 7) >= 15 Then
- k = 15
- Else
- k = .Cells(i, 6) + .Cells(i, 7)
- End If
-
- .Cells(i, 8) = Round(m / 365 * k, 1) '假期总天数在 现在到年底的天数占全年的比例,4舍五入取整
- Next '下一轮循环
- End With
- End Sub
复制代码
以上内容已修改到文件中,请见附件文档。
以上。
年假小工具修改.zip
(19.39 KB, 下载次数: 7)
|
|