EXCEL计算月份,不满15天按半月计算,超过15天按整月算

如何用EXCEL计算月份,不满15天按半月计算,超过15天按整月算
比如说一个员工2012年9月16日入职,截止到2013年7月15日,他一共在职多少个月,不满15天按半月计算,超过15天按整月算的EXCEL公式?

示例数据:

按照题目要求,超过15天按照一个月计算,否则就按照半个月计算,所以,可以在辅助列输入公式:=IF(DAY(D1)>15,1,0.5),用day函数提取日期中的天数,用来和15作比较,超过15返回1,否则返回0.5。以此可以进行下一步的计算。

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

假设A1单元格写入入职日期,B1单元格写入截止日期

则C1单元格写入公式

 

公式一

="在职"&IF(DATEDIF(A1,B1,"D")<15,"半个月",IF(DATEDIF(A1,B1,"MD")<15,DATEDIF(A1,B1,"M")&"个半月",DATEDIF(A1,B1,"M")+1&"个月"))

 

公式二

="在职"&DATEDIF(A1,B1,"M")+IF(DATEDIF(A1,B1,"MD")<15,0.5,1)&"个月"

 

公式三

=DATEDIF(A1,B1,"M")+IF(DATEDIF(A1,B1,"MD")<15,0.5,1)     再设置单元格格式为常规

 

 

追问

如果是2012-12-31到2013-7-15怎么是6.5月,应该是8个月啊?

追答

如果是2012-12-31到2013-7-15
用DATEDIF函数,参数为"M"(即算月份时)计算过程如下
12-31至1-31 一个月
1-31至3-1 两个月(此处较为特殊,请注意,要到3月1日才算一个月)
3-1至4-1 三个月
4-1至5-1 四个月
5-1至6-1 五个月
6-1至7-1 六个月
7-1至7-15 六个半月(7月1日至7至15日相距14天,不足15天,算半个月)

上面的算法只在2月份有一天的出入,但加上这一天也不会是8个月,只能说是7个月

你的意思是2012年的12月31日也算一个月,然后1,2,3,4,5,6,7算7个月?
那是虚岁的算法,那还分什么半个月.

想清楚你要的结果是什么,说明白才好写公式给你

本回答被提问者和网友采纳
第2个回答  2019-03-21
1、A1为入职日期,计算到当天的月数(超过15天的算1月):
=(YEAR(TODAY())-YEAR(A1))*12+IF((MONTH(TODAY())-MONTH(A1))>=0,MONTH(TODAY())-MONTH(A1),MONTH(TODAY())-MONTH(A1)-12)+IF((DAY(TODAY())-DAY(A1))>=15,1,IF((DAY(A1)-DAY(TODAY()))>=15,-1,0))
2、当天的日期(含年月日):
=TODAY()