tft每日頭條

 > 生活

 > excel 星期幾函數

excel 星期幾函數

生活 更新时间:2025-01-12 12:08:21

案例:計算星期幾

除了年月日和時分秒,我們還會使用的是星期數,如今天是星期幾。在Excel的函數中有WEEKDAY函數,它的語法是:

WEEKDAY(serial_number,[return_type])

其中,serial_number參數是指定的日期;return_type參數對應數字的含義如圖13-1所示。

excel 星期幾函數(Excel星期及月份函數)1

圖13-1WEEKDAY函數參數說明

簡單記憶,使用數字“2”即可。因為數字2返回的結果是以星期一為一周的起點,将星期一到星期日返回結果對應為1到7,這種方式相對其他參數來說,比較直觀,可以直接看出來當前日期是星期幾。

如圖13-2所示,在D9單元格中輸入以下公式,并向下複制到D22單元格,即可得到C列對應的日期:

=WEEKDAY(C9,2)

excel 星期幾函數(Excel星期及月份函數)2

圖13-2WEEKDAY示例

13.2計算幾個月後的日期或月底日期

下面要介紹的兩個函數,使用後可使公式大大縮短。

n月後日期:

EDATE(start_date,months)

n月後月底日期:

EOMONTH(start_date,months)

其中,參數months可以為正數,也可以為負數或零。

EDATE函數是計算幾個月後對應的日期,EOMONTH函數是計算幾個月後的月底的日期。

經常有同學将EOMONTH拼錯了,我們可以這樣記憶:EOMONTH縮寫于EndOfMONTH,提取相應的字頭就形成了EOMONTH。

1.常規使用

如圖13-3所示,C11單元格為任意日期,這裡為2017/2/8,D列為EDATE函數的相應公式。

excel 星期幾函數(Excel星期及月份函數)3

圖13-3EDATE與EOMONTH的常規使用

D11單元格“=EDATE($C$11,5)”,計算5個月後的對應日期,結果為2017/7/8。

D12單元格“=EDATE($C$11,0)”,計算0個月後的對應日期,結果為2017/2/8。

D13單元格“=EDATE($C$11,-4)”,計算-4個月後的對應日期,也就是4個月前,結果為2016/10/8。

F列為EOMONTH函數的相應公式。

F11單元格=“EOMONTH($C$11,5)”,計算5個月後的月底日期,結果為2017/7/31。

F12單元格=“EOMONTH($C$11,0)”,計算當月的月底日期,結果為2017/2/28。

F13單元格=“EOMONTH($C$11,-4)”,計算-4個月後的月底日期,也就是4個月前,結果為2016/10/31。

2.對月底日期的處理

對于月底最後一天日期分别是30和31日的情況,EOMONTH函數在處理過程中沒有任何差異,而EDATE函數處理時會有一些區别。

(1)日期為月底31日。

如圖13-4所示,起始日期為某月的31日,如2017/1/31,而幾個月後有31日的,就返回對應的結果,如2017/7/31。如果當月沒有31日,則返回相應月份月底的最後一天,如2016/9/30、2017/2/28等。

excel 星期幾函數(Excel星期及月份函數)4

圖13-4日期為月底31日

(2)日期不為月底31日。如圖13-5所示,起始日期為某月的月底,即30日,如2017/4/30,而幾個月後有30日的,就返回對應的結果,如2017/10/30、2017/4/30。如果當月沒有30日,則返回相應月份月底的最後一天,如2017/2/28、2016/2/29。

excel 星期幾函數(Excel星期及月份函數)5

圖13-5日期為月底不為31日

3.實戰

(1)案例:計算退休日期。

某人的生日為1980/9/15,按照男60周歲退休,女55周歲退休的規定計算(這裡隻是假設條件,實際情況請依據國家規定),那麼男女退休日期分别是哪天。

根據男60周歲退休,其公式為:

=EDATE(D33,60)

于是得到結果1985/9/15,很顯然,得到的是錯誤結果,那麼錯在哪裡了?EDATE講的是幾個月之後的日期,公式中的數字60表達的并不是60年,而是60個月。如圖13-6所示,正解為:

=EDATE(D33,60*12)

=EDATE(D33,55*12)

excel 星期幾函數(Excel星期及月份函數)6

圖13-6計算退休日期

(2)案例:計算合同到期日。

某員工新入職,簽訂合同日期為2017/2/8,合同期限為3年,那麼合同到期日是哪天?

這裡分兩種情況來計算。

【計算方式1】合同期限按照整3年計算,則可以直接用EDATE函數,在D39單元格輸入以下公式:

=EDATE("2017/2/8",3*12)

語法上沒錯,但必須結合工作中的實際情況來驗證這個公式。該公式返回結果為2020/2/8,在簽訂合同時,起止日期都算作工作日,按照這個計算結果,簽訂的合同并不是整3年,而是3年零1天。所以,有必要作一下修正,于是将D39單元格的公式修正為:

=EDATE("2017/2/8",3*12)-1

【計算方式2】公司HR為了統一管理,将合同到期日統一按照3年後的月底最後一天的日期簽訂,于是在D40單元格輸入以下公式:=EOMONTH("2017/2/8",3*12)

計算結果如圖13-7所示。

excel 星期幾函數(Excel星期及月份函數)7

圖13-7計算合同到期日

(3)案例:當年每月有多少天。

工作中計算每個月各有多少天,在前面我們通過DATE、YEAR、MONTH、DAY函數計算過,但是公式有點長,現在換一種算法。

C列為1~12月,“1月1日”“2月1日”……“12月1日”屬于Excel标準日期格式,所以我們可以将1~12月的字段構造成标準的日期格式,并且通過EOMONTH函數得到每月最後一天的日期,最後使用DAY函數提取其中的“日”,即可得到最終結果。順着此思路分步寫出以下公式。

在E43單元格輸入公式:

=C43&"1日"

在F43單元格輸入公式:

=EOMONTH(E43,0)

在G43單元格輸入公式:

=DAY(F43)

如圖13-8所示,将分步的思路整合在一起,最終形成嵌套公式:=DAY(EOMONTH(C43&"1日",0))

excel 星期幾函數(Excel星期及月份函數)8

圖13-8當年每月有多少天

提示一點,“1月1日”這種格式适用于中文版Excel,但在英文版的Excel中無法正常計算,遇到英文版Excel時,整體DAY EOMONTH的思路不變,将日期改為“1-1”的形式,就可以通用了,公式可寫為:=DAY(EOMONTH(LEFTB(C43,2)&"-1",0))

英文版的Excel無法識别LEFTB函數,無法準确提取月份。因此,我們将LEFTB函數換成SUBSTITUTE函數:=DAY(EOMONTH(SUBSTITUTE(C43,"月","-1"),0))

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved