日期與時間函數
_
首頁 線上購物 接課行事曆 教學資料 美食消息 新知新聞 黑輪Q&A 黑輪BLOG 黑輪日記 童軍團友會 好貨推薦

My status
首頁
向上

 

日期與時間函數

Excel的日期與時間函數能讓您快速且精確的執行工作表的計算。例如,如果您使用工作表計算公司的每月薪資,您也許會使用HOUR函數判定每日的工作時數與WEEKDAY函數判定應付給員工的標準費用(從星期一到星期五)或加班費用(從星期六到星期日)。在本節,我們將詳細地討論一些(但不是全部)的Excel日期與時間函數。

TODAY函數

TODAY函數會傳回當日的序列值。TODAY函數採用下列形式

=TODAY()

雖然這個函數沒有引數,但您必須記得使用空括號。

使用這個函數能讓您在工作表上的儲存格一直反應出當日的日期。

NOW函數

您可以使用NOW函數在儲存格中輸入日期與時間。這個函數採用下列形式

=NOW()

跟TODAY函數一樣,NOW函數沒有引數。函數的結果為序列日期與包含一個整數(日期)和小數(時間)的時間值。例如,如果今天是2000年7月21日,且時間為11:45 AM,則NOW函數會傳回值36728.48958。

Excel不會持續更新NOW函數的值。如果包含NOW函數的儲存格值不正確,您可以重新計算工作表來更新數值(您可以經由下列步驟計算工作表,按一下 工具 功能表的 選項 對話方塊中 計算 標籤的 重算所有文件 按鈕,或是按 F9  Ctrl+= )。當您開啟工作表時,Excel會更新NOW函數。

NOW函數是動態函數的一個例子;動態函數是會隨著改變而計算值的函數。如果您開啟包含一個以上NOW函數的工作表,並立即的關閉此工作表,Excel會提示您是否要儲存檔案即使並沒有做任何修改,因為從上次使用工作表到現在NOW函數的值已經改變(動態函數的另一個例子是RAND)。

WEEKDAY函數

WEEKDAY函數會傳回指定日期那週的日並按照下列格式

=WEEKDAY(serial_number,return_type)

serial_number引數可以為序列日期值、包含日期函數或序列日期值的儲存格參照或是文字,如1/27/00或2000年1月27日。如果您使用文字,確定有以引號圍住文字。

WEEKDAY函數會傳回一個代表指定日期那週的日的數字。選用的return_type引數決定結果展現的方式。如果return_type為1或忽略,則函數會傳回從1到7的數字而1代表星期日7代表星期六。如果return_type為2,則函數會傳回從1到7的數字,而1代表星期一7代表星期日。如果return_type為3,則函數會傳回從0到6的數字,而0代表星期一6代表星期日。

提示

您可能想要使用自定的日-周格式如dddd,來格式化包含WEEKDAY函數的儲存格。這樣的格式能讓您在其他的函數中使用WEEKDAY的計算結果並能在視窗中有意義的顯示。

YEAR、MONTH與DAY函數

YEAR、MONTH與DAY函數傳回年、月、日部份的序列日期/時間值。這些函數採用下列形式

=YEAR(serial_number)

=MONTH(serial_number)

=DAY(serial_number)

serial_number引數可以為序列日期值,包含日期函數或序列日期值的儲存格參照,或是以引號圍住的文字日期。

這些函數的結果與部份特定的serial_number引數對應。例如,如果儲存格A1包含日期

3/25/2000

公式

=YEAR(A1)

傳回值2000,公式

=MONTH(A1)

傳回值3,而公式

=DAY(A1)

傳回值25

HOUR、MINUTE與SECOND函數

正如YEAR、MONTH與DAY函數能讓您取得一個序列日期/時間值的年、月與日部份,HOUR、MINUTE與SECOND函數能取得序列日期/時間值的時、分與秒部份。這些函數採用下列形式

=HOUR(serial_number)

=MINUTE(serial_number)

=SECOND(serial_number)

這些函數的結果與部份特定的serial_number引數對應。例如,如果儲存格B1包含時間

12:15:35 PM

公式

=HOUR(B1)

傳回值12,公式

=MINUTE(B1)

傳回值15,而公式

=SECOND(B1)

傳回值35

DATEVALUE與TIMEVALUE函數

Excel的DATEVALUE函數能將日期翻譯為序列值。與DATE函數相近,除了您必須輸入文字引數之外。DATEVALUE函數採用下列形式

=DATEVALUE(date_text)

date_text引數表示從1900年1月1日開始的任何日期,以任何Excel的內建日期格式(您必須在文字周圍加上引號)。例如,公式

=DATEVALUE("December 31, 2345")

會傳回序列值162899。如果您輸入date_text時並未輸入年,Excel會使用電腦內部時鐘目前的年。

TIMEVALUE函數會將時間翻譯為小數值。與TIME函數相近,除了您必須輸入文字引數之外。TIMEVALUE函數採用下列形式

=TIMEVALUE(time_text)

Time_text引數表示Excel內建的任一個時間格式(您必須在文字周圍加上引號)。例如,如果您輸入

=TIMEVALUE("4:30 PM")

函數傳回小數數值0.6875

 

專業的日期函數

有一組專業的日期函數執行如安全到期日或薪資與工作時程表的計算。只有在您安裝 分析工具箱 增益集之後才能使用本節所說明的函數。

EDATE與EOMONTH函數

您可以使用EDATE函數計算已知日期之前或之後指示月數的精確日期。函數採用下列形式

=EDATE(start_date,months)

start_date引數是您想要開始計算的開始日期,而months是指示開始日期之前或之後的整數值。如果month引數為正值,EDATE函數則會傳回開始日期之後的日期;如果month引數為負值,函數則會傳回開始日期之前的日期。

例如,要精確尋找1999年6月12日之後23個月的日期,輸入公式

=EDATE("6/12/99", 23)

傳回值為37023或May 12, 2001

EOMONTH函數傳回已知日期之前或之後指示月數的日期。EOMONTH與EDATE相似,除了傳回的值總是月的最後一天之外。EOMONTH函數採用下列形式

=EOMONTH(start_date,months)

例如,要計算1999年6月12日之後23個月與那個月最後一天的序列日期值,輸入公式

=EOMONTH("6/12/99", 23)

傳回值36311或May 31, 2001

YEARFRAC函數

YEARFRAC函數計算代表年部份的小數,落在兩個已知的日期間。函數採用下列形式

=YEARFRAC(start_date,end_date,basis)

start_date與end_date引數設定您想要轉換一段時間成為小部份的年。Basis引數是您想使用的計算日期類型。Basis引數0(或省略)指示由美國的National Association of Security Dealers(NASD)所建立的30/360或每月30日與每年360日的準則。Basis 1指示實際天數/實際天數,或月中的實際天數/年中的時間天數。同樣的,basis 2指示實際天數/360,而basis 3指示實際天數/365。Basis 4指示以歐洲的方式判定,而歐洲的方式也使用每月30日/每年360日。

例如,要判定從4/12/00到12/15/00所佔一年的部份時,輸入公式

=YEARFRAC("4/12/00","12/15/00")

結果傳回0.675,以每月30日與每年360日為預設值。

WORKDAY與NETWORKDAYS函數

在計算薪資與津貼或工作時程表時,WORKDAY與NETWORKDAYS函數皆無法數值化。這兩個函數都只傳回以工作天數為基礎的值,包括週末天數。除此之外,您也能選擇是否包括假日與指定確切的日期。

WORKDAY函數所傳回的日期精確地指示已知日期之前或之後的工作天數。函數採用下列形式

=WORKDAY(start_date,days,holidays)

start_date引數是您想要函數開始計算的日期,而days是開始日期之前或之後的工作天數,包含週末與假日。天數使用正數能從啟示日期往前計算,而使用負數則能往後計算。例如,要判定當天之後100的工作日的日期,使用公式

=WORKDAY(NOW(),100)

選用的holiday引數可以為一段儲存格範圍的陣列或參照,包括您在計算中想排除的日期。只要輸入任何您想要排除的日期到陣列或範圍中並指定為引數。如果您保持holidays引數為空白,函數會計算從開始日期開始的所有工作日。

同樣的,NETWORKDAYS函數計算兩個已知日期之間的工作天數。函數採用下列形式

=NETWORKDAYS(start_date,end_date,holidays)

end_date引數是您想要包含在範圍內的最後日期。您可以再一次的選取排除holidays。例如,要判定從2000年1月15日到2000年6月30日間的工作天數(包含假日),使用公式

=NETWORKDAYS("1/15/00","6/30/00")

結果的值為120

 
 

EmailAllen@Chen.name