Excel 日期相減處理

2021-05-23 18:30:58 字數 1472 閱讀 2433

今天幫使用者處理了乙個

excel

日期相減的問題,委實折騰了我乙個來小時,這裡由衷的感嘆微軟

excel

的強大,同時又想臭罵微軟的頑疾(中看不中用)。

問題描述如下:a

b c

d e

20100101

20090912

2010/1/1

2009/9/12

111

20100101

20090914

2010/1/1

2009/9/14

109

20090823

20100101

2009/8/23

2010/1/1

-131

20091104

20100101

2009/11/4

2010/1/1

-58

20100102

20090818

2010/1/2

2009/8/18

137

20100102

20091205

2010/1/2

2009/12/5

28 20100102

20090412

2010/1/2

2009/4/12

265

a列和b列存放的是日期格式化成年、月、日的值,使用者希望得到a列和

b列的日期相差幾天。看上去很簡單,用

excel

自帶的datedif(start_date,end_date,unit)

函式相減一下即可,其實不然。

解決:1

)由於datedif

只能處理日期值,或者類似

2010/12/13

等字串,而

20101213

,其無法處理,同時為了讓使用者更好明白日期差是如何得到,於是新增c、

d列分別存放a、

b轉換後的日期值,轉換公式為

c2=date(mid(a2,1,4),mid(a2,5,2),mid(a2,7,2)) 2

)datedif

函式處理

原以為通過函式

datedif(start_date,end_date,」d」)

即可得到兩個日期的天數之差,可是當

end_date

小於start_date

時,該函式執行就出錯了,真是對微軟這種中看不中用的做法深惡痛絕呀。幸好的是,我們可以先比較

start_date

,end_date

大小,然後交換

start_date

,end_date

的順序即可。新增e

列,存放c、

d列日期的天數之差,計算公式如下:

e2=if(c2>d2,1,-1)*if(c2>d2,datedif(d2,c2,"d"),datedif(c2,d2,"d"))

Excel 日期相減處理

今天幫使用者處理了乙個excel 日期相減的問題,委實折騰了我乙個來小時,這裡由衷的感嘆微軟excel 的強大,同時又想臭罵微軟的頑疾 中看不中用 問題描述如下 a b cd e 20100101 20090912 2010 1 1 2009 9 12 111 20100101 20090914 2...

Python datetime日期相減

python中需要計算時間間隔,使用該方法能夠計算出相差的days和seconds from datetime import datetime supp date str datetime.now split 0 print str datetime.now split 0 days datetim...

oracle 日期相減

oracle日期相減 2012 02 10 12 18 months between date2,date1 給出date2 date1的月份 sql select months between 19 12月 1999 19 3月 1999 mon between from dual mon bet...