2008年11月26日 星期三

[資訊] excel的日期時間公式

對於一些未正規化的日期,如有些人會使用971127(String)來代表11/27號,有些人則會用2008/11/27來表示
在excel中,這些會被視為不同的格式,因此無法進行加減運算,也無法去判別其相差幾天




這時候最重要的就是把資料正規化,正規化之後才可以作加減。以下是excel內內建含數的介紹:


DATE          傳回日期的時間序列值。

DATEVALUE     將文字型態的日期資料改為數字的日期型態。

DAY           傳回時間數值所代表的日期數。


DAYS360       根據一年360天(12個月都是30天)的曆法(用於某些會計計算),
              傳回兩個日期間的日數。

HOUR          傳回時間數值所代表的小時數。

MINUTE        傳回時間數值所代表的分鐘數。

MONTH         傳回時間數值所代表的月份。

NOW           傳回現在日期與時間。

SECOND        傳回對應於日期和時間序列的秒數部分。

TIME          傳回指定時間。

TIMEVALUE     傳回對應於時間文字的序列值。

TODAY         傳回電腦系統內建時鐘的現在日期的序列值。

WEEKDAY       求日期的星期數。

YEAR          傳回對應於日期序列值的年份數(範圍為1900~9999)


 


很明顯是使用date或是date value來作處理


如果是使用date來作加減的話:


可以利用Left, right, mid三個含數來作處理:


因此:把971127正規化的就可以寫成:


DATE(LEFT(971127,2)+6,MID(971127,3,2),RIGHT(971127,2))  即可,當然,要記得把那一格欄位的格式改成「日期」


 


完成了以後,就可以開始作日期的加減了(通常是使用days360)


 


其他有一些含數也可以使用,也有所幫助,歡迎自行試驗。


1 則留言:

  1. 可以迴船線在的時分秒嗎? NOW()只有時分,沒有秒! 謝謝~

    版主回覆:(11/09/2008 10:34:03 AM)


    now()其實有含秒數喔~你用 SECOND(NOW())
    就可以抓出其秒數了
    或是按右鍵,選擇儲存格格式-->數值 那邊選一個有秒數的即可。

    回覆刪除