今天幫使用者處理了乙個excel
日期相減的問題,委實折騰了我乙個來小時,這裡由衷的感嘆微軟excel
的強大,同時又想臭罵微軟的頑疾(中看不中用)。
問題描述如下: a
b cd 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 c d e 20100101 20090912 2010 1 1 2009 9 12 111 20100101 2009091...
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...