Excel根据入职时间计算工龄工资,需要精确到月份

工龄一年以下50元,1到5年100元,6-10年150元,11-15年200元,16-20年250元,21-25年300元,26-30年350元,31-35年400元,36-40年以上450元
这个用函数杂整,请高手解答,谢谢
需要精确到月份哈,比如2005年5月份到现在的2010年11月份工龄就是5年5个月了
=LOOKUP(YEAR(TODAY())-YEAR(T5),{0,1,5,11,15,21,25,31,35},{50,100,150,200,250,300,350,400,450})
要这样才能满足到月份就涨工资,比如2000.7.1,到2005.7.2日就可以涨工资了,谢谢大虾些……

如图: 

根据你的补充问题修改了一下:

=VLOOKUP(INT(((YEAR(NOW())-YEAR(B2))*12+(MONTH(NOW())-MONTH(B2))+SIGN(DAY(NOW())-DAY(B2)))/12),{0,50;1,100;5,150;10,200;15,250;20,300;25,350;30,400;35,450},2)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-11

参考图片。

A列填写入职日期。

B列公式计算工龄。

C列公式结算工龄工资。

B列公式:=(TODAY()-A2)/365

C列公式:=FLOOR(B2+4,5)*10+50

拖拽填充,不明白HI我。

第2个回答  2010-11-11
假设入职时间在C列
工龄在D列
第一行为表头
在D2输入公式 =year(today())-year(c2)&"年"&month(today())-month(c2)&"月" 回车然后往下拉就可以把工龄自动计算出来了

至于工龄奖金的计算我观察了一下,用公式lookup比较好,工龄奖金假设在E列,在E2输入公式:
=LOOKUP(year(today())-year(c2),{0,1,6,11,16,21,26,31,36},{50,100,150,200,250,300,350,400,450})
往下拉
第3个回答  2010-11-11
=IF(MONTH(A2)>MONTH(TODAY()),YEAR(TODAY())-YEAR(A2)-1,YEAR(TODAY())-YEAR(A2))
如果入职月数字大于当月数字,则为一年未满,工龄就是当年数字减去入职年份再减1,反之,则为一年已满,那么就是当年数字减去入职年份,计算出工龄后就好算工资了。

或者是
=CONCATENATE(DATEDIF(A2,TODAY(),"y"),"年",DATEDIF(A2,TODAY(),"m")-B2*12,"月")
用Datedif计算出相差的年数和月数,再用concatenate连起来

最后在用if计算工资
先用=LEFT(C2,1)计算提取出工龄一列里面的年数
再用if
=IF(B2<1,50,IF(B2<=5,100,IF(B2<=10,150,IF(B2<=15,200,IF(B2<=20,250,IF(B2<=25,300,IF(B2<=30,350,IF(B2<=35,400,450))))))))
第4个回答  2010-11-11
DAYS360(A1,A2)/30/12
A1:入职日期
A2:现在日期
这样计算的是一个数字,比如1.5年,2.3年,这样的结果方便你后续定条件定奖金。
相似回答