Excel函式 - 計算日期間的差距

今天被問到了一個問題,如何在Excel內設定公式來得到日期間的差距,因為他要賣房子

的資料內各筆要計算目前的屋齡,如果自行推算的話相當不方便,由於筆數過多。

因此,我上網查了一下,發現有人講到DATEDIF這個隱藏的公式。


簡單用法如下:

DATEDIF(Start_Date, End_Date, Unit)

  • 在此我填入公式的日期格式為yyyy-mm-dd
  • Unit部分,若填入"y"表示得到年的差距;ym表示混合年月一起看得到月份差距

舉例如下:


起始日期 => 民國年.月份需轉換成西元格式(yyyy-mm-dd)

終止日期 => NOW() 函示取得

1. 首先計算年的差距

DATEDIF(LEFT(A2, 2 )+1911&"-"&RIGHT(A2,2)&"-01",NOW()+1,"y")

由於在這邊我們輸入的落成日期格式只有到年、月,因此在這邊的日就固定塞入某個值

首先,將民國年取出後加上1911轉換成西元年的部分;月份的部分固定取右邊算來兩位

的值。因此將會得到 104 - 68 = 36。

2. 再來計算月的差距

IF(LEN(DATEDIF(LEFT(A2, 2 )+1911&"-"&RIGHT(A2,2)&"-01",NOW()+1,"ym"))=2, 
    DATEDIF(LEFT(A2, 2 )+1911&"-"&RIGHT(A2,2)&"-01",NOW()+1,"ym"), 
   "0"&DATEDIF(LEFT(A2, 2 )+1911&"-"&RIGHT(A2,2)&"-01",NOW()+1,"ym"))

公式使用上有一點複雜,其實是要滿足月份的值如果小於10以下的話,則要補上0的部分

,要不然就是採用原值。因此在這邊會使用邏輯函式及字串函式

若月份的差距得到的值為1,則長度等於2將不會滿足,因此將自動補上0的部分

-------------------------------------------------------------------------------------------------------------------

補充解釋:

若90.11 與 104.02做比較差距,則年的部分算出來的並不是14,而是13

因為在公式DATEDIF(LEFT(A2, 2 )+1911&"-"&RIGHT(A2,2)&"-01",NOW()+1,"ym")會

影響到算年的部分,因此月份不夠減的情況下,會跟年借一位來滿足月份可以減的盡囉

所以在一開始我才會說unit若用ym,是混和年月一起看

相關的部分,可以參考網路上的其他詳盡的介紹文章,在這邊小弟只是做個紀錄,若使用

的解釋有誤請不吝指正XD

留言