计算Excel中两个date之间的月数

所以我试图简单地计算一下早期date和今天之间的月份数,这个月份将在B:B列; 一旦计算了几个月,结果就乘以28,然后回到原来的date。 注意要求: 结果> =今天 ,所以基本上,如果结果less于今天需要再增加28天。 我现在的公式只有在当年才有效(而且我不能100%确定这个公式是否有效,尽pipe如此。

这里是我已经失效的公式,但也许有人可以从我的上面的评论和下面的公式我得到一个大概的想法在这里实现:

=IF(B89="","",IF(I89="X","LEG",IFERROR(IF((MONTH(TODAY()-B89)*28)+B89<TODAY(),(MONTH(TODAY()-B89)*28)+B89+28,(MONTH(TODAY()-B89)*28)+B89),"Future")))

预先感谢您的帮助!

注:我只想指出,上面提到的I89并不重要。 我只是不想删除它,如果我删除了错误的括号或其他错字,所以我决定离开那里。 所以基本上你不需要担心前两个“IF”陈述,也不必担心IFERROR,除非你只是想!

2ND编辑:好吧,我决定剥离公式,原来的职位公式是以上,剥离版本如下:

IF((MONTH(TODAY()-B89)*28)+B89<TODAY(),(MONTH(TODAY()-B89)*28)+B89+28,(MONTH(TODAY()-B89)*28)+B89)

你不应该使用MONTH()来达到这个目的,因为这会在某些情况下导致错误的结果,当然当B89date在另外一年的时候。

取而代之的是,看看自B89以来28天的最后一个倍数是多less天,然后回到那个date(通过减去),然后再添加28:

 =TODAY() + 28 - MOD((TODAY()-B89), 28) 

这个最早的date是明天的date。 如果今天应该是该公式的可接受结果,那么用TODAY()-1replaceTODAY() ,得到以下公式:

 =TODAY() + 27 - MOD((TODAY()-1-B89), 28) 

怎么样这样的事情:

 =IF(B89="","",IF(I89="X","LEG",IF(IF(B89<=TODAY(),B89+28*IF(AND(B89<TODAY(),TEXT(B89,"mmyy")=TEXT(TODAY(),"mmyy")),"1",(TEXT(TODAY(),"yy")*12+MONTH(TODAY()))-(TEXT(B89,"yy")*12+MONTH(B89))),"Future")<TODAY(),TODAY(),IF(B89<=TODAY(),B89+28*IF(AND(B89<TODAY(),TEXT(B89,"mmyy")=TEXT(TODAY(),"mmyy")),"1",(TEXT(TODAY(),"yy")*12+MONTH(TODAY()))-(TEXT(B89,"yy")*12+MONTH(B89))))))) 

现在有点长,但是你有很多标准:)

    Interesting Posts