Excel是怎樣表示日期和時間的?我們看到的不一定是真實的!通常,我們在單元格中按慣用的日期格式輸入數(shù)據(jù)時,Excel會自動將其轉(zhuǎn)換成日期。下圖是我在單元格中輸入日期和時間并設(shè)置完格式后的樣子:
圖1
這只是我們看到的樣子,實際上Excel是按下圖所示的數(shù)字來存儲這個日期和時間的:
圖2
也就是說,在Excel中,日期和時間都是一個數(shù)字,日期為整數(shù)部分,時間為小數(shù)部分。日期是一個序列號,表示自1900年1月1日以來的天數(shù)。序號1對應(yīng)1900年1月1日,序號2對應(yīng)1900年1月2日,依次類推。時間表示為一個單位為24小時的小數(shù),其范圍為0~1。起始點在午夜,其序號為0,正午的時間序號為0.5。上圖中可以看出,2017年8月26日的序號為42973,上午9時1分表示為.38。
在Excel中,時間的最小單位是千分之一秒,時間序列號表示為23:59:59.999。
一分鐘約等于0.00069444,即1/(24*60)。
一秒鐘約等于0.00001157,即1/(24*60*60)。
1900年之前的日期怎么辦
正如前文所,Excel是以1900年1月1日開始的序號來存儲日期的,如果輸入1900年1月1日之前的日期,Excel將會以文本的形成存儲,因此不能對其進(jìn)行格式、計算等操作。
在單元格中輸入日期和時間
只要遵循下列規(guī)則,Excel都會自動將輸入視為日期和時間。
使用斜杠(/)或者連字符(-)連接年月日
使用冒號(:)連接時分秒
輸入××年×月×日或×?xí)r×分
同時輸入日期和時間時,在日期和時間之間使用空格分開
查找日期
如果只是按單元格中顯示的內(nèi)容來查找日期,有時候會找不到數(shù)據(jù),如下圖所示。
圖7
DAYS()函數(shù)返回兩個日期之間的天數(shù)。
WEEKNUM()函數(shù)返回指定的日期在所給年份中的周數(shù)。
EDATE()函數(shù)返回從起始日期開始k個月前或后的日期。
EOMONTH()函數(shù)返回起始日期之前或之后k個月的月底日期。
DATEDIF()函數(shù)以指定的格式單位返回兩個日期之差。
下面的公式返回任何當(dāng)前月份的最后一天:
=DATE(YEAR(C1),MONTH(C1)+1,0)
雖然月份的最后一天會是28、29、30或31,但任何月份的最后一天都是下一月份的前一天。單元格C1中包含要返回當(dāng)前月份最后一天的日期。
下面的公式計算準(zhǔn)確的年齡:
=YEAR(NOW())-YEAR(Birthday)-(DATE(YEAR(NOW()),MONTH(Birthday),DAY(Birthday))>NOW())
公式的關(guān)鍵點是判斷當(dāng)前日期是否大于生日,若還沒有過生日,則減1,否則保持不變。公式中的Birthday為生日。
下面的公式計算準(zhǔn)確的時間差:
=IF(EndTime<StartTime,1+EndTime-StartTime,EndTime-StartTime)
其中,StartTime為開始時間,EndTime為結(jié)束時間。當(dāng)工作開始于前天晚上,結(jié)束于當(dāng)天上午時,上述公式能計算準(zhǔn)確的時間差。