请问excel公式怎么设?

来源:百度知道 编辑:UC知道 时间:2024/06/14 10:44:33
关于工龄的算法。入职日期定义的格式是yy-mm-dd。请问怎么设公式自动得出职工的工龄?
最好是能自己设定一个标准日的。比如我以8月1号为标准去计算职工的工龄。
谢谢~~~
我的意思是,如果以08.08.01为标准日期,那么计算一个员工从入职到8月1日这一天的工龄,是几年几个月。。
谢谢
我现在用的公式是=CONCATENATE(DATEDIF(D5,TODAY(),"y"),"年",DATEDIF(D5,TODAY(),"ym"),"个月")
这样就是每次都会以我做表格时的系统时间为标准日来计算,会有一定误差。所以我想要改进一下。

假如A列是开始日期,B列是你设定的标准日,那么在C1用DATEDIF公式,下面是例子(复制到Excel中看效果,记得把入职日和标准日改成日期格式)

入职日 标准日 工龄 工龄(包含月数)
38417 39479 =DATEDIF(A2,B2,"Y") =CONCATENATE(DATEDIF(A2,B2,"Y"),"年",DATEDIF(A2,B2,"YM"),"月")

可能我弄错了你的意思,你说的标准日是指什么?是否是某年8月1日前入职的就算当年入职,如果是8月1日后入职的就算下一年入职?

使用datedif函数就可以实现,例如在A1中输入入职日期,在B1中求工龄,操作如下:

不设定标准日,即按照当前日期来计算的话,在B1单元格中输入下述公式即可:=DATEDIF(A1,TODAY(),"y")

设定标准日计算工龄时,将公式中的当前日期TODAY()换成你要设定的日期即可,例如案例中以8月1号为标准计算,则在B1单元格中输入下述公式即可:
=DATEDIF(A1,"2008-8-1","y")

其他的单元个复制过去就可以了

补充:
你只要把公式中的TODAY()换成具体日期就可以了(日期要加上半角双引号),例如你所说的例子,把公式改成下列式子就可以了:
=CONCATENATE(DATEDIF(D5,"2008-8-1","y"),"年",DATEDIF(D5,"2008-8-1","ym"),"个月")

=(YEAR(NOW())-YEAR(F3))+IF((MONTH(NOW())-MONTH(F3))<0,-1,0)

其中NOW()是指现在的时间,你也可以换成你刚才说的8月1日的年份,F3是指“入职日期”。

假定"入职日期&