第1个回答 2009-02-17
既然要精确,建议按“日工资”计算而非“月工资”。这样直接用离职日期减去入司日期,即可得到天数差。
如果按提问,则比如入司日期为2月25日,离职为4月25日,那么怎么算?=4/28+1+25/30——非闰年
那么用计算方法又要更复杂一点。
假设入司日期在A1,离职日期在A2
=DATEDIF(EOMONTH(A1,0),EOMONTH(A2,-1),"m")——计算A1到A2掐头去尾的整月数
=(EOMONTH(A1,0)-A1+1)/DAY(EOMONTH(A1,0))——计算入司当月的工作天数占该月比例,如前面的4/28
=DAY(A2)/DAY(EOMONTH(A2,0))——计算离职当月工作天数占当月天数比例,如25/30。
总月份工龄就是这3个加起来的和。 四舍五入保留2位小数:
=ROUND(DATEDIF(EOMONTH(A1,0),EOMONTH(A2,-1),"m")+(EOMONTH(A1,0)-A1+1)/DAY(EOMONTH(A1,0))+DAY(A2)/DAY(EOMONTH(A2,0)),2)
注意:使用Excel2003的话需要加载宏→加载“分析工具库”才能使用EOMONTH。
不加载的公式:
=ROUND((DATE(YEAR(A1),MONTH(A1)+1,0)-A1+1)/DAY(DATE(YEAR(A1),MONTH(A1)+1,0))+DAY(A2)/DAY(DATE(YEAR(A2),MONTH(A2)+1,0))+DATEDIF(DATE(YEAR(A1),MONTH(A1)+1,0),DATE(YEAR(A2),MONTH(A2),0),"m"),2)
欢迎百度搜索“您可能正在到处寻找答案的Excel问题详解”
第3个回答 2009-02-16
DATEDIF()
函数的
1、简要说明: 返回两个日期之间的年\月\日间隔数
2、基本语法: =DATEDIF(开始日期,结束日期,单位代码)
3、实例1:
题目: 计算出生日期为1973-4-1人的年龄
公式: =DATEDIF("1973-4-1",TODAY(),"Y")
结果: 33
简要说明 当单位代码为"Y"时,计算结果是两个日期间隔的年数.
4、实例2:
题目: 计算日期为1973-4-1和当前日期的间隔月份数.
公式: =DATEDIF("1973-4-1",TODAY(),"M")
结果: 403
简要说明 当单位代码为"M"时,计算结果是两个日期间隔的月份数.
5、实例3:
题目: 计算日期为1973-4-1和当前日期的间隔天数.
公式: =DATEDIF("1973-4-1",TODAY(),"D")
结果: 12273
简要说明 当单位代码为"D"时,计算结果是两个日期间隔的天数.
5、实例4:
题目: 计算日期为1973-4-1和当前日期的不计年数的间隔天数.
公式: =DATEDIF("1973-4-1",TODAY(),"YD")
结果: 220
简要说明 当单位代码为"YD"时,计算结果是两个日期间隔的天数.忽略年数差
5、实例5:
题目: 计算日期为1973-4-1和当前日期的不计月份和年份的间隔天数.
公式: =DATEDIF("1973-4-1",TODAY(),"MD")
结果: 6
简要说明 当单位代码为"MD"时,计算结果是两个日期间隔的天数.忽略年数和月份之差
5、实例6:
题目: 计算日期为1973-4-1和当前日期的不计年份的间隔月份数.
公式: =DATEDIF("1973-4-1",TODAY(),"YM")
结果: 7
简要说明 当单位代码为"YM"时,计算结果是两个日期间隔的月份数.不计相差年数