高手帮忙,一个计算年休假天数的公式

公式=IF(I1="实习生",0,IF(AND(M1>=20,P1="年休",R1>=120),0,IF(AND(M1>=10,M1<20,P1="年休",R1>=90),0,IF(AND(M1<10,P1="年休",R1>=60),0,IF(M1>=20,15,IF(AND(M1>=10,M1<20),10,IF(AND(M1>1,M1<10),5,IF(M1=1,******,0)))))))),我现在想把5*(DATE(2009,12,31)-(H1+365))/365放到公式中******的位置但没有成功,请高手帮忙,谢谢。

LZ大概没有学过编程或者编程学德很糟糕吧?(*^__^*) 嘻嘻……,要不然就是LZ是否在考验我们了。

建议合并公式后,用days360函数来处理。

合并为:
=IF(OR(I1="实习生",AND(M1>=20,P1="年休",R1>=120),AND(M1>=10,P1="年休",R1>=90),AND(M1<10,P1="年休",R1>=60)),0,IF(M1>=20,15,IF(M1>=10,10,IF(M1>1,5,IF(M1=1,DAYS360(H1,"2009-12-31",0)/365*5,"")))))

对于LZ的公式,我想,理解应该是这样:
1.如果是实习生,或者20年工龄以上,但休病假120天以上(不知道R1是不是病假的意思,应该不是产假吧?)的员工,或者10-15年工龄,休病假90天以上的员工;10年以下工龄,但休病假60天的员工都没有带薪年假可休了。

2.不满1年的,则按工作天数/整年天数*5天来计算年假;1-9年的按5天计算;10-19年的按10天算;20年以上的按15天算。如果没有理解错的话,就先按上面的公式试试看。

最好发源文件过来给我看看,[email protected]。我明天再改一下。

关键是不知道你的H1是什么玩意儿……所以days360函数还要改动。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-11-18
1、EXCEL表解决该问题;
2、A1为参加工作时间,B2自动生成休假天数;
3、在B2中输入公式=IF(("2009-1-1"-A1)<365,"0天",IF(("2009-1-1"-A1)<3650,"5天",IF(("2009-1-1"-A1)<7300,"10天","15天")))
第2个回答  2008-11-18
LZ大概没有学过编程或者编程学德很糟糕吧?(*^__^*) 嘻嘻……,要不然就是LZ是否在考验我们了。

建议合并公式后,用days360函数来处理。

合并为:
=IF(OR(I1="实习生",AND(M1>=20,P1="年休",R1>=120),AND(M1>=10,P1="年休",R1>=90),AND(M1<10,P1="年休",R1>=60)),0,IF(M1>=20,15,IF(M1>=10,10,IF(M1>1,5,IF(M1=1,DAYS360(H1,"2009-12-31",0)/365*5,"")))))

对于LZ的公式,我想,理解应该是这样:
1.如果是实习生,或者20年工龄以上,但休病假120天以上(不知道R1是不是病假的意思,应该不是产假吧?)的员工,或者10-15年工龄,休病假90天以上的员工;10年以下工龄,但休病假60天的员工都没有带薪年假可休了。

2.不满1年的,则按工作天数/整年天数*5天来计算年假;1-9年的按5天计算;10-19年的按10天算;20年以上的按15天算。如果没有理解错的话,就先按上面的公式试试看。

最好发源文件过来给我看看,[email protected]。我明天再改一下。

关键是不知道你的H1是什么玩意儿……所以days360函数还要改动。
1、EXCEL表解决该问题;
2、A1为参加工作时间,B2自动生成休假天数;
3、在B2中输入公式=IF(("2009-1-1"-A1)<365,"0天",IF(("2009-1-1"-A1)<3650,"5天",IF(("2009-1-1"-A1)<7300,"10天","15天")))
第3个回答  2008-11-18
不会