1.获取员工本公司服务月份
司龄月 SERVINGMONTH()
司龄年 SERVINGMONTH()/12
向下取整
举例
员工入司每年可得司龄补贴100元
先设置司龄年字段
司龄年= SERVINGMONTH()/12
向下取整
司龄补贴=司龄年*100
2.判断员工是否本月入职或离职
ONBOARDTERMINATION()
根据员工实际出勤天数及标准日平均工资来发放基本工资
举例
如某员工基本工资5000元/月,当月入职,实际出勤11天
根据正算,计算规则应当是:当月基本工资 = 5000/21.75 * 11 =2528.74 元
当月实际发放基本工资 IF(ONBOARDTERMINATION() ='是' , #基本工资# /21.75*#实际出勤天数# , #基本工资# )
公式含义为:
如果: 员工是否本月入职或离职 = 是,
当月实际发放基本工资 = 基本工资 / 21.75*员工实际当月在职计薪日天数
否则 当月实际发放基本工资 = 基本工资
IF函数:
IF函数是进行判断的函数,语法同EXCEL的IF函数完全一致
如果员工的入职日期或者最后工作日在本期发薪周期内,则函数计算结果为:'是',否则结果为'否'
员工本月实际在职计薪天数( ACTUALWORKINGDAY() )函数:
用以获取员工当月实际在职的计薪日,函数会自动排除员工入职前的计薪日或者离职后的计薪日,这个字段也可以修改为实际出勤天数,实际出勤天数也可以同步钉钉考勤。21.75也可以根据公司规则来调整为应出勤天数或是其他的字段。
用户可以根据公司实际的计算规则,选择日历日或者工作日来进行这算
三者区别在于:
日历日:不考虑节假日,周末,等场景,仅统计自然日历日天数
CALENDARDAY()
举例 每月公休4天,如何计算应出勤天数
应出勤天数= CALENDARDAY()-4
计薪日:统计需要支付工资的天数,即当月日历日排除周末天数,不排除法定节假日天数
举例:公司的应出勤天数按当月工作日+当月节假日作为应出勤天数
应出勤天数=WORKINGDAY()
工作日:统计需要上班的天数,即当月日历日排除周末即法定节假日天数
WEEKDAY()
举例:公司的应出勤天数按当月工作日
应出勤天数=WEEKDAY()
3.如何使用if函数
IF ( 判断条件,“是”的结果, “否”的结果 )
举例:如员工当月迟到次数3次内不扣款,第四次开始扣款10元
公式:if(迟到次数<=3,0,(迟到次数-3)*10)
4.如何使用and函数
一般与if函数一起使用 AND(逻辑表达式1,逻辑表达式2,......)
举例:当月没有迟到,早退 事假 病假 可的全勤奖100元
if(and(迟到=0,早退=0,事假=0,病假=0),100,0)
5.如何使用or函数
一般与if函数一起使用 OR(逻辑表达式1,逻辑表达式2,......)
举例 职位为组长及主管,岗位补贴200,职位为经理和项目负责人,补贴500
if(or(职位= '组长',职位= '主管'),200,if(or(职位= '经理',职位= '项目负责人'),500,0))
公式参考:
迟到扣款
每次迟到扣10元,封顶100元
if(迟到次数>=10,100,迟到次数*10)
前三次迟到不扣款,第四次开始每次扣50(包含前三次扣款)
IF(迟到次数<=3,0,迟到次数*3)
迟到30分钟内不扣款,超过30分钟每分钟扣1元
IF(迟到时长<=30,0,迟到时长)
司龄奖
司龄满一年有司龄奖100元,封顶1000元
先设置司龄年= SERVINGMONTH()/12 向下取整
司龄奖= if(司龄年>=10,1000,司龄年*100)
病假公式
病假扣款,司龄小于2年扣40%,司龄2-4年扣30%,司龄4-6年扣20%,司龄6-8年扣10%,8年以上病假不扣款.
P.S:病假每天扣款规则为 基本工资/应出勤天数
IF(工龄<2,基本工资/应出勤天数*病假天数*40%,IF(and(工龄>=2,工龄<4),基本工资/应出勤天数*病假天数*30%),IF(and(工龄>=4,工龄<6,基本工资/应出勤天数*病假天数*20%),IF(and(工龄>=6,工龄<8),基本工资/应出勤天数*病假天数*10%),0))))
事假扣款
前三天扣当天工资,超过3天扣双倍
IF(事假天数<=3,基本工资/应出勤天数*事假天数,基本工资/应出勤天数*事假天数*2)
全勤奖
当月没有请假,没有迟到,没有旷工,可以得全勤奖100元
if(事假+病假+迟到次数+旷工天数)=0,100,0)
6.如何使用司龄函数
SERVINGTIME('y')(括号中可以日 月 年来设置 D M Y
示例:
司龄大于1年,奖励100元,小于等于1年没有
IF(SERVINGTIME('y')>1,100,0)
7.如何使用当前薪资月
CURRENTMONTH() 可以跟IF一起使用
示例 6-9月没有有高温补贴100元
IF(OR(CURRENTMONTH()=6, CURRENTMONTH()=7, CURRENTMONTH()=8, CURRENTMONTH()=9),100,0)
8.如何使用入离职缺勤天数
ABSENCETIME('workingday') (可填写workingday、weekday、calendarday)
可以根据日历日 工作日 计薪日来计算当月入离职员工的缺勤天数
9.如何使用本月算薪开始/结束时间/日期相减函数
PERIODSTART() PERIODEND()
一般是跟日期相减一起用
示例:当月10日前入职有补贴100元,10日后入职没有(默认当月1日为算薪开始日)
if(DATEDIF(PERIODSTART(),入职日期,'d')<=10,100,0)
10.如何使用本月入职/离职函数
IFONBOARD() IFTERMINATION() 跟IF一起使用
示例:本月入职有补贴100元,本月离职没有
IF(IFONBOARD()=1,100,0)
11.如何使用等比例求和函数
示例:第一次迟到扣20,第二次迟到扣40 第三次迟到扣80 以此类推
SUMGEOMETRIC(20 ,2,#迟到次数# )