2016-04-28 105 views
0

因此,我試圖簡單計算一個早期日期和今天之間的月數,該日期將在B:B列中;一旦計算了月數,結果就會乘以28,然後返回原始日期。注意要求:結果> =今天,所以基本上如果結果小於今天需要再增加28天。目前的公式我只有當日期是在今年的作品(我不是100%確定這個公式是否有效,但它似乎迄今爲止。)計算Excel中兩個日期之間的月數

這是我失效的公式,但也許有人可以從我的上述評論,什麼我試圖在這裏實現的下面公式得到一個總體思路:

=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)

+1

能否請您提供一些示例數據和預期的結果?目前還不清楚你正在尋找什麼 – tigeravatar

+0

這可能有所幫助:https://support.microsoft.com/en-gb/kb/214134 – Jordan

+0

如果B1的日期是1/1/16,公式應該計算05的日期/ 20/16(否則4/20/16將在過去)。我希望每4周檢查一次這些帳戶(這就是爲什麼經過的月份數量乘以28)。但是,如果B1的日期是1/8/16,它實際上會計算日期爲4-29-16。 –

回答

2

你不應該使用MONTH()作爲此目的在某些情況下會導致錯誤的結果,並且肯定當B89日期在另一年時。

而是看你是過去的,因爲B89 28天的最後一個多多少天,並返回到該日期(減去),然後添加另一個28到它:

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

的最早日期這可以給出明天的日期。如果今天應該是配方的可接受的結果,然後用TODAY()-1取代TODAY(),導致此公式中:

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

謝謝你的回覆!第二種方法很成功(這比我提出的方法簡單得多)。謝謝!! –

+0

不客氣。 – trincot

0

怎麼是這樣的:

=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))))))) 

得到了現在有點長,但你有很多標準:)

+0

最終結果必須等於或大於今天的日期,爲28的倍數。因此,如果自開始日期起3個月過去了,則需要三個月並乘以28(= 84),然後將84天添加到原始日期。這也需要整理,所以如果這個結果在今天之前就需要再增加28天(4周)。 –

+0

我已將上述公式修改爲您的標準。現在回到每個月,它將在B89單元格中添加額外的28天到日期。 –

+0

對不起,錯過了同一個月的標準。現在修復。 –

相關問題