EXCEL表中如何设置工龄奖月份公式,求高手进来指

员工入职日期为2016年1月15日,发工资日期为10-15号,用以下公式一但到6月份,工龄月份直接跳6个月,请高手指导下怎样将公式设置到日呢?这样不用一直去瞄着修改了。要是人员一多眼睛都瞄瞎了,求高手指教。
=(YEAR(TODAY())-YEAR(D5))*12-MONTH(D5)+MONTH(TODAY())

第1个回答  2016-06-07
先在一个单元格里面输入=today(),然后直接用今天的日期-2016/1/15就可以直接得到天数。
然后应该就可以得出多少月了。
希望可以帮到你追问

那完整的公式是怎么写的呢

追答

我试了一下,一个公式直接减不行的,需要两步,相当于要两列才可以的。
第一列直接输入today(),然后第二列用前面的一个单元格减2016/1/15就可以了
就可以直接得到天数。

追问

几百个员工入职日期都不一样,那我要一个个的去写?几千个员工呢?那不写惨了

追答

入职日期你那里不是有吗?两个相减就可以了啊

追问

你可以帮我写出来嘛。

追答

你可以看看

第2个回答  2016-06-07
=DATEDIF(D5,TODAY(),"D")
入职到今天的时间距离,以天数计
D代表天数
可更改为
M代表月数
Y代表年数追问

你可以把他写出来嘛,不知道怎么改啊

追答

就是改最后面双引号中间的那个字母
间隔天数=DATEDIF(D5,TODAY(),"D")
间隔月数=DATEDIF(D5,TODAY(),"M")
间隔年数=DATEDIF(D5,TODAY(),"Y")

追问

我写进去都跳不出来

追答

你要出来什么数,举个例子

追问

每个员工的入职日期不一样,比如一个员工入职日期为2016年1月15日,发工资日期为10-15号,用以下公式一但到6月份,正常情况下16年1月15号-16.2.14号为1个月,16.1.15-16.7.14号为6个月,那么应该到7.14工龄那格直接才跳6个月才对,现在用了以下公式之后工龄月份在6月时就直接跳6个月,我想等他到了16年7月14号才跳6个月,麻烦你帮忙看下怎么设置全部的公式?谢谢了

追答

就是按月份计算,只是你的临界点设置的问题
15号到下个月14号结束算一个月,精确来说,到14号的时候是还没有满一个月的,只有这一天结束了才算满1个月
修改一下就可以了
=DATEDIF(D5,TODAY()+1,"M")

公式中D5是开始时间,也就是入职时间
today()是结束时间,如果用当前时间的话就不用改了
根据以上描述,你改一下开始和结束时间就可以了

另外你的时间格式是标准的吗?如果不是标准的要调整为标准格式

第3个回答  2016-06-07
=DATEDIF(D5,TODAY(),"m")

=DATEDIF(D5,TODAY(),"m")&"月"&DATEDIF(D5,TODAY(),"md")&"日"追问

输入不行啊

追答

你将我的公式复制粘贴到你的表中,将D5修改成你的日期单元格,应该可以。我试过:第一个公式是计算入职到今天有几个整月数,第二个公式是计算入职到今天有几个整月数及几天。

追问

这个方法好是好,可以看出几月几号,可是我后面还设置了工龄奖呢,这样就计算不出来工龄奖多少钱了,

我设置工龄奖是要满半年50元,一年100,暂时不限几年至少也有十年吧
以下是工龄奖公式
=IF(ROUNDDOWN(F8/6,0)<1,0,(ROUNDDOWN(F8/13,0)+1)*50)

追答

你是每半年长50元吗?
是,则:=50*INT(DATEDIF(D5,TODAY(),"m")/6)
不是,是不足半年为0,半年以上不足一年的50,满一年及以上的每年每月为100:
=IF(DATEDIF(D5,TODAY(),"m")<6,0,IF(DATEDIF(D5,TODAY(),"m")<12,50,100*(DATEDIF(D5,TODAY(),"y"))))

本回答被提问者采纳