提供以下三个公式,嫌字多懒得看的话,直接用第三个公式就行。顺便打包了我的测试cpt,有需要可以导下来自己看。
MONTHDELTA(DATE(LEFT(B2, 4), RIGHT(B2, 2), 1), int(DATEDIF(DATE(LEFT(A2, 4), RIGHT(A2, 2), 1), DATE(LEFT(B2, 4), RIGHT(B2, 2), 1), "M") / 2))
效果如下:
上面是月份1绝对不小于月份2的公式。如果月份1和月份2不确定哪个一定更大的话,用下面这个公式MONTHDELTA(if(A2>B2,DATE(LEFT(B2, 4), RIGHT(B2, 2), 1),DATE(LEFT(A2, 4), RIGHT(A2, 2), 1)), int(DATEDIF(DATE(LEFT(A2, 4), RIGHT(A2, 2), 1), DATE(LEFT(B2, 4), RIGHT(B2, 2), 1), "M") / 2))
效果如下:
以上两个公式得出的其实是年月日的格式,所以我的单元格样式是这么设的。
但如果有写入数据库的需要,必须实际值是6位的话,可以用以下第三个公式,单元格样式也不用改了。如果只是视图报表使用的话,前两个公式就行了,不会影响导出。
FORMAT(MONTHDELTA(if(A2>B2,DATE(LEFT(B2, 4), RIGHT(B2, 2), 1),DATE(LEFT(A2, 4), RIGHT(A2, 2), 1)), int(DATEDIF(DATE(LEFT(A2, 4), RIGHT(A2, 2), 1), DATE(LEFT(B2, 4), RIGHT(B2, 2), 1), "M") / 2)),"yyyyMM")
测试.cpt