
收到粉丝提问:EXCEL怎么算出两个日期之间的月份?
本来两个人按照要求肝了一个星期,好不容易合并了的时间,交过去又说只要月份,试了网上找的各种办法都弄不了。
差不多有5000多行要弄。的心都有了。具体数据如图所示:

要计算图中这种格式的日期之间的月份数,可以使用IF嵌套函数公式来实现。通过IF结合DATEDIF函数来计算月份。
从图中可以看出,存在两种情况,一是空值,二是非空值,在非空值的情况下又分为有横杠“-”的日期段和单独的日期。
因此,可以使用下面的公式来计算月份:
=IF(A2="",A2,IF(ISNUMBER(FIND("-",A2)),DATEDIF(DATE(LEFT(A2,4),MID(A2,5,2),1),DATE(MID(A2,FIND("-",A2)+1,4),RIGHT(A2,2),1),"m")+1,1))+IF(B2="",B2,IF(ISNUMBER(FIND("-",B2)),DATEDIF(DATE(LEFT(B2,4),MID(B2,5,2),1),DATE(MID(B2,FIND("-",B2)+1,4),RIGHT(B2,2),1),"m")+1,1))

这个公式看似冗长复杂,其实很好理解,由于需要计算的数据位于两列,因此该公式由两部分相加组成。
公式释义:
1. 通过文本函数LEFT、MID、RIGHT提取文本
LEFT(E13,4):从左侧开始提取4个字符的文本,返回2017。
MID(E13,5,2):从第5个字符的位置开始提取2个字符的文本,返回04。
MID(E13,FIND("-",E13)+1,4):从符号“-”的下一位置开始提取4个字符的文本,返回2017。
RIGHT(E13,2):从右侧开始提取2个字符的文本,返回06。
2. 通过日期函数DATE将年月转换为日期格式
DATE(LEFT(E13,4),MID(E13,5,2),1):将提取出来的文本转为日期格式,返回2017/4/1。
DATE(MID(E13,FIND("-",E13)+1,4),RIGHT(E13,2),1):将提取出来的文本转为日期格式,返回2017/6/1。

3. 通过DATEDIF函数计算月份数
DATEDIF(DATE(...),DATE(...),"m"):DATEDIF 函数用于计算两个日期之间的差异,“m”代表月份。
4. IF嵌套公式根据不同情况返回指定值
IF(E13="",E13,IF(ISNUMBER(FIND("-",E13)),DATEDIF(...,"m")+1,1)):首先判断E13是否为空值,若为空值等于本身,否则,再判断E13中是否有符号“-”,若有该符号,则分别提取文本转为日期并计算日期间的月份数,反之,返回数字1。

通过以上分享的函数公式就能快速计算月份数,若还有疑问或者分享更好的方法,欢迎留言交流哦~
想了解更多精彩内容,快来关注