如何在 Excel 中使用日期與時間

文章編號: 214094 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文將逐步告訴您,如何使用 Microsoft Excel 的內建日期與時間函數來執行複雜的日期與時間計算。

Excel 會將所有日期儲存為整數,並將所有時間儲存為小數。有了這個系統,Excel 可以將日期與時間當做數字般地進行加減或比較,並且透過此系統變更所有日期。

在此系統中,序號 1 代表 1/1/1900 12:00:00 a.m。時間是以 .0 到 .99999 的小數而儲存,其中 .0 表示 00:00:00,而 .99999 表示 23:59:59。日期整數與時間小數可以結合為含有小數與整數部份的數字。例如,數字 32331.06 代表日期與時間 7/7/1988 1:26:24 a.m。

為了協助您計算複雜的日期與時間,Excel 包含許多內建日期與時間函數。

TODAY() 函數與 NOW() 函數

TODAY 函數會依據您的系統時鐘傳回今天日期的序號,但不包括時間。NOW 函數會傳回今天日期的序號,並且包括時間。

根據序號排序日期的方式

在 Excel 中,日期是根據日期序號來排序,而非顯示的編號。因此,當您在 Excel 排序日期時,可能不會得到想要的結果。

例如,如果您排序一連串以 mmmm 日期格式顯示的日期 (如此只會顯示月份),月份並不會依字母排序。相反的,日期是根據其下的日期序號來排序。

根據序號比較日期的方式

由於序號也會用來比較日期與時間,因此實際結果可能會與您所預期 (根據顯示的值) 的不同。

如,當您在下列公式中使用 NOW 函數,將指定日期與目前日期做比較時,
=IF(NOW()=DATEVALUE("10/1/92"),TRUE,FALSE)
				
即使目前日期為 10/1/92,但公式仍會傳回 FALSE;只有在日期為 10/1/92 12:00:00 a.m 時,才會傳回 TRUE。如果您要使用公式比較兩個日期,但所得結果不需包含時間,請使用 TODAY 函數:
=IF(TODAY()=DATEVALUE("10/1/92"),TRUE,FALSE)
				

如何使用日期公式

如何求得今天與未來某日期之間的天數

如果要求得現在到未來某日之間的天數,請使用下列公式
="mm/dd/yy"-NOW()
				
其中 "mm/dd/yy" 是未來的日期。使用 [G/通用] 將含有公式的儲存格格式化。

如何求得兩個日期之間的天數、月數與年數

如果要計算兩個日期之間 (分別在儲存格 A1 與 A2 中輸入開始日期與結束日期) 的天數、月數與年數,請依照下列步驟執行:
  1. 建立新活頁簿
  2. 在活頁簿中輸入下列資料:
    A1:   03/25/94 
    A2:   05/01/98
    					
  3. 在儲存格 D1 中輸入下列公式:
    =YEAR(A2)-YEAR(A1)-IF(OR(MONTH(A2)<MONTH(A1),AND(MONTH(A2)=MONTH(A1), 
    DAY(A2)<DAY(A1))),1,0)&" years, "&MONTH(A2)-MONTH(A1)+IF(AND(MONTH(A2) 
    <=MONTH(A1),DAY(A2)<DAY(A1)),11,IF(AND(MONTH(A2)<MONTH(A1),DAY(A2) 
    >=DAY(A1)),12,IF(AND(MONTH(A2)>MONTH(A1),DAY(A2)<DAY(A1)),-1)))&" months, 
    "&A2-DATE(YEAR(A2),MONTH(A2)-IF(DAY(A2)<DAY(A1),1,0),DAY(A1))&" days"
    						
    注意:如果您複製並貼上此公式,請確定其中沒有分行符號,否則公式將無法作用。
如果您正確地輸入公式,現在,儲存格 D1 會顯示:
4 年,1 個月,6 天
				
天、月與年的其他公式分解

此公式也可以分解為如下的個別天、月與年區段。

注意:如果您複製並貼上這些公式,請確定其中沒有分行符號,否則公式將無法作用。
時間區段                     公式
   ------------------------------------------------------------------------

兩個日期之間          =A2-DATE(YEAR(A2),MONTH(A2)-
差距的天數,          IF(DAY(A2)<DAY(A1),1,0),DAY(A1))&"days"
忽略年與月
   

兩個日期之間          =MONTH(A2)- MONTH(A1)+IF(AND(MONTH(A2)
差距的月數,        <=MONTH(A1), DAY(A2)<DAY(A1)),11,
忽略年與天          IF(AND(MONTH(A2)<MONTH(A1),DAY(A2)>=
DAY(A1)),12,IF(AND(MONTH(A2)>MONTH(A1),
DAY(A2)<DAY(A1)),-1)))&" months"

兩個日期之間        =YEAR(A2)-YEAR(A1)-IF(OR(MONTH(A2)<
差距的整數年數                MONTH(A1),AND(MONTH(A2)=MONTH(A1),
DAY(A2)<DAY(A1))),1,0)&" years"
				
注意:在先前的公式中,&" days", &" months" 及 &" years" 皆為選用項目。這些項目可以讓您分辨出天、月與年的計算結果。

如何求得兩個日期之間的工作天數

如果要求得兩個日期之間 (分別在儲存格 A1 與 A2 中輸入開始日期與結束日期) 的工作天數,請依照下列步驟執行:
  1. 建立新活頁簿。
  2. 在活頁簿中輸入下列資料:
    A1:   03/25/94 
    A2:   05/01/98
    					
  3. 在儲存格 D1 中,輸入下列公式:
    =NETWORKDAYS(A1,A2)
    					
1,071 為結果。

注意:如果您的結果為 #NAME,請按一下 [工具] 功能表上的 [增益集]。按一下以選取 [分析工具箱] 核取方塊,如果收到是否要進行安裝的提示,請按一下 [是]

如何以累加方式增加日期

如果要以累加方式增加年數、月數或天數,請使用下列公式
=DATE(YEAR(reference)+value1,MONTH(reference)+value2,DAY(reference)+value3)
				
其中 reference 為日期值或包含日期的儲存格參照,value1value2value3 是您想要個別增加的年、月與天數的遞增值。

例如,如果要將日期增加一個月,公式為:
=DATE(YEAR(DATEVALUE("6/20/96")),MONTH(DATEVALUE("6/20/96"))+1,
DAY(DATEVALUE("6/20/96")))
				

如何使用時間公式

如何計算經歷時間

當您將一個儲存格的內容減去另一個儲存格以算出其中的經歷時間時,結果會是代表經歷小時、分鐘與秒數的序號。為了讓此數字更容易令人瞭解,請將包含結果的儲存格設為 h:mm 時間格式。

在下列範例中,如果儲存格 C2 與 D2 包含公式 =B2-A2,而儲存格 C2 的格式是設為 [G/通用] 格式,則儲存格會顯示小數 (在此情況下,序號 0.53125 代表 12 個小時又 45 分鐘)。
A1:開始時間   B1:結束時間    C1:差異  D1:差異
(G/通用)       (h:mm)
A2:6:30 AM      B2:7:15 PM     C2:0.53125     D2:12:45
				
如果您的開始時間與結束時間橫跨午夜,就必須將 24 小時的時間差異計入。您可以增加數字 1,代表一個 24 小時週期。例如,您可以針對跨越午夜的時間來設定下列表格。
A1:開始時間    B1:結束時間    C1:差異  D1:差異
(G/通用)       (h:mm)
A2:7:45 PM       B2:10:30 AM    C2:0.61458333  D2:14:45
				
如果要建立此表格,請在儲存格 C2 與 D2 中輸入下列公式:
=B2-A2+IF(A2>B2,1)
				

如何累計超過 24 小時的小時與分鐘數

如果要正確地顯示超過 24 小時的時間,您可以使用 37:30:55 內建格式。如果您想要改用自訂格式,就必須將此格式的小時參數置於括號內,例如:
[h]:mm
				

如何將日期轉換為相等小數

如果要將序列化日期 (h:mm:ss) 轉換為小數 (0.00),您必須轉換為 24 小時時制,以便將序號轉換為小數。只要將時間乘以 24 即可,如下所示
=Time*24
				
其中 Time 是您想要從時間格式轉換為小數的數字;此數字可以是儲存格參照或 TIMEVALUE 函數中的數字字串。

例如,如果儲存格 A1 包含了代表 4 個小時又 30 分鐘的「4:30」,則轉換公式為:
=A1*24
				
結果為 4.5。

如果儲存格同時包含日期與時間,請使用下列公式:
=(Time-INT(Time))*24
				
例如,如果儲存格 A1 為「6/20/96 4:30 AM」,則公式為:
=(A1-INT(A1))*24
				
結果仍為 4.5。

如何將小數轉換為相等日期

如果要將小數 (0.00) 轉換為序列化相等日期 (h:mm:ss),您必須轉換為 24 小時時制,以便將序號轉換為小數。只要將時間除以 24 即可,如下所示
=Time/24
				
其中 Time 是您想要從小數轉換為日期序號的數字,可以是儲存格參照或實數。例如,如果儲存格 A1 中的值 4.5 是代表 4 個小時又 30 分鐘,則轉換公式為:
=A1/24
				
結果為 4:30。

如何在 Microsoft Excel for the Macintosh 與 Microsoft Excel for Windows 之間傳輸檔案

根據預設,Excel for Macintosh 使用 1904 年日期系統,而 Excel for Windows 使用 1900 年日期系統。這表示當您在 Excel for the Macintosh 輸入序號 1 並格式化為日期時,Excel 會顯示為 1/2/1904 12:00 a.m.。Excel for Windows 會將序號 1 顯示為 1/1/1900 12:00 a.m.

如果您將 Excel for Macintosh 的檔案傳輸到 Excel for Windows,這兩個日期系統的差異並不會造成問題,因為日期系統是儲存在各個檔案中。但是,如果您在來自不同平台上的不同日期系統之間複製和貼上檔案,則顯示的日期可能與正確的日期相差 4 年又 1 天。

如果要將 Excel for Windows 變更為 1904 年日期系統,請依照下列步驟執行:
  1. 按一下 [工具] 功能表上的 [選項]
  2. 按一下 [計算] 索引標籤,然後選取 [1904 年日期系統] 核取方塊。
如果要將 Excel for Macintosh 變更為 1900 年日期系統,請依照下列步驟執行:
  1. 按一下 [工具] 功能表上的 [偏好]
  2. 按一下 [計算] 索引標籤,然後清除 [1904 年日期系統] 核取方塊。

?考

如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
214233 XL:Text or number converted to unintended number format in Excel
214386 Maximum Times in Microsoft Excel
241072 XL:Dates and times displayed as serial numbers when viewing formulas in Excel
264372 XL2000:控制及了解儲存格格式對話方塊中的設定

屬性

文章編號: 214094 - 上次校閱: 2006年5月22日 - 版次: 6.3
這篇文章中的資訊適用於:
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
關鍵字:?
kbscreenshot kbgraphxlink kbdatetime kbautomation kbprogramming kbfunctions kbhowtomaster kbmigrate KB214094
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見