2014-10-28 69 views
-1

需要一個複雜的公式,我似乎無法得到正確的幫助:Excel的日期功能

的數據是這樣的:

 A   B    C  D  E 

1         2014 2015 2016 
2 5/1/2014 7/1/2016   8  12  7 

的公式需要計算的月數給定年份在C1-E1中例如基於開始和結束日期A2/B2。

因此,在2014年的開始年份,總共有8個月(5月至12月),2015年爲12個月,因爲開始和結束日期跨越了2015年,並且2016年自結束日期結束那一年以來,有多少個月從年初到結束日期。

我可以得到答案的一部分,但不能把它全部弄清楚。請救救我! :)

+0

你的問題是沒有那麼多清楚,你可以用這個公式在C2跨複製下來。根據開始日期和結束日期,如果月份大於12,您是否要實現一年中分散了多少個月? – vkrams 2014-10-28 22:40:51

+0

你管理了哪個部分? – pnuts 2014-10-28 22:45:34

回答

0

該代碼將完成你的目標,有幾個假設:

  1. 只有全月將在A和B可以考慮(例如,將有14年5月1日,並沒有區別。14年5月10日 - 他們都將被視爲
  2. 上面列出你舉的例子是無效的:E欄應該顯示,不是7,因爲有16年1月1日之間只有6個月, 7/1/16。

下面的代碼粘貼到C2並將其拖入C2:E2

=IF(YEAR($A$2)<C$1,IF(YEAR($B$2)<C$1,0,IF(YEAR($B$2)>C$1,12,MONTH($B$2)-1)),IF(YEAR($A$2)>C$1,0,IF(YEAR($B$2)<C$1,0,IF(YEAR($B$2)>C$1,13-MONTH($A$2),MONTH($B$2)-MONTH($A$2))))) 
0

使用您提供的例子,以使工作表看起來是這樣的:

tigeravatar example

在C2單元格並複製權是這個公式:

=IF(YEAR($A2)=C$1,13-MONTH($A2),IF(YEAR($B2)=C$1,MONTH($B2),IF(OR(YEAR($A2)>C$1,YEAR($B2)<C$1),0,12))) 
+0

你先生太棒了!這正是它應該做的。我不知道該怎麼感謝你才足夠。我確實想要假設一個月的任何部分都是整整一個月。 – nfoye99 2014-10-28 23:08:32

1

我假設7是正確的2016我n您的例子,因爲你指望一個月的任何部分爲一個月,在這種情況下,如果需要

=IFERROR(MIN(DATEDIF(MAX($A2-DAY($A2)+1,DATE(C$1,1,1)),MIN($B2,DATE(C$1+1,1,0)),"m")+1,12),0)

+0

就是這樣!只需要添加一個月的任何部分是否在日期內,然後對其進行計數。最後一張海報補充說。非常感謝! – nfoye99 2014-10-28 23:09:33