Excel計算全年、每月或一段時間內的工作日天數(去除節假日、周末和調休)

計算一段日期內的應出勤天數是工作中經常遇到的問題, 不僅需要考慮周末, 還要考慮國家的法定節假日和調休等.

在日常的工作中有以下四種情況:

  • 1 雙休, 不考慮節假日和調休
  • 2 雙休, 考慮節假日, 但不考慮調休
  • 3 單休, 不考慮法定節假日和調休
  • 4 雙休或單休, 考慮法定節假日和調休

為了計算上面的四種情況, 需要用到Excel中的兩個函數: NETWORKDAYS和NETWORKDAYS.INTL. 接下來首先介紹四種情況的解決方法, 最后介紹兩個函數的詳細使用方法.

1 雙休, 不考慮節假日和調休

這種情況下, 所有的周六和周日都是休息日, 除周六和周日外的日期都是正常工作日. 這時可以使用NETWORKDAYS函數可以解決.

NETWORKDAYS的使用方法是: NETWORKDAYS(start_date, end_date, [holidays]), 函數包含三個參數:

  • start_date, 必選參數, 表示開始日期;
  • end_date, 必選參數, 表述結束日期;
  • holidays, 可選參數, 表示節假日

計算示例如下

  1. 計算2018-12-03~2018-12-31之間的工作日天數, 就可以使用公式NETWORKDAYS("2018-12-3", "2018-12-31").
  2. 針對單元格的計算如下圖所示. C2單元格的工作日天數的計算公式是NETWORKDAYS(A2,B2), 其中A2B2分別表示開始日期和結束日期,
    計算兩個日期之間的工作日天數
  3. 計算給定日期所在月份剩余的工作日天數: NETWORKDAYS(A2,DATE(YEAR(A2),MONTH(A2)+1,)) , 其中A2單元格表示日期, DATE(YEAR(A2),MONTH(A2)+1,)用于計算該月的最后一天(如2018-12-3, 12月的最后一天是2018-12-31)
    計算給定日期所在月份剩余的工作日天數

2 雙休, 考慮節假日, 但不考慮調休

這種情況下所有的周末和指定的節假日是休息日, 其余時間為正常的工作日, 示例如下: C2單元格的計算公式為: NETWORKDAYS(A2,B2,$E$2:$E$6), 其中A2B2分別表示開始日期和結束日期, 第三個參數$E$2:$E$6表示法定節假日.

出勤天數計算

3 單休, 不考慮法定節假日和調休

單休的情況下就不能使用NETWORKDAYS函數了, 需要使用另外一個函數NETWORKDAYS.INTL, 該函數包括四個參數, 分別是:

  • start_date, 必選參數, 表示開始日期;
  • end_date, 必選參數, 表示結束日期;
  • weekend, 可選參數, 表示一周中哪些天是周末, 哪些天是工作日. 使用一個由0,1組成的字符串表示, 0表示工作日, 1表示周末, 如每周雙休可以表示為: "0000011", 周日單休可以表示為: "0000001".
  • holidays, 可選參數, 表示節假日, 可以自定義節假日.

根據NETWORKDAYS.INTL函數的定義我們可以得到此種情況的解決方案, 需要使用前三個參數. 示例如圖所示:
其中前兩個參數A2B2分別表示開始和結束日期, 第三個參數"0000001"表示每周周日是休息日, 其他是工作日. 工作日天數的計算公式就是: =NETWORKDAYS.INTL(A2,B2,"0000001")

出勤天數計算

4 雙休或單休, 考慮法定節假日和調休

這種情況是最復雜的情況, 也是最常見的情況. 如果只考慮節假日, 那么我們只需要使用NETWORKDAYS函數就可以解決. 但是涉及調休之后不行了.
所以還是需要使用NETWORKDAYS.INTL函數, 但是需要換個思路來解決問題.

  • 首先, 把一周的7天都作為正常的工作日;
  • 然后, 所有的周末和法定節假日, 減去所有的調休作為節假日;
  • 最后, 計算一段時間內的所有天數減去節假日的天數就是正常的工作日天數.

按照這個思路, 函數的前兩個參數仍然是開始日期和結束日期, 第三個參數定義為"0000000", 第四個參數是所有的周末加所有的節假日, 減去調休的日期.

那么下圖的例子中, 工作日天數的計算公式就是: =NETWORKDAYS.INTL(A2,B2,"0000000",$E$2:$E$116)

出勤天數計算

5 函數NETWORKDAYS詳細使用方法

該函數用于計算從指定的開始日期(包含)到結束日期(包含)的工作日的天數, 工作日不包括周末和指定的節假日. 具體的使用方法如下, 詳細使用方法參見官方文檔

語法

NETWORKDAYS(start_date, end_date, [holidays])
該函數有三個參數, 每個參數代表的意義如下:

  • Start_date, 必需參數。 一個代表開始日期的日期。
  • End_date, 必需參數。 一個代表終止日期的日期。
  • Holidays, 可選參數。不在工作日歷中的一個或多個日期所構成的可選區域,例如:省/市/自治區和國家/地區的法定假日以及其他非法定假日。該列表可以是包含日期的單元格區域,或是表示日期的序列號的數組常量。

函數NETWORKDAYS.INTL的詳細使用方法

返回兩個日期之間的所有工作日數,可以使用參數指定哪天是周末(這對于單休的公司非常有用),也可以指定除周末外的其他節假日。周末和任何指定為假期的日期不被視為工作日。詳細使用方法可以參考官方文檔

語法

NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])

該函數有三個參數, 每個參數的解釋如下:

  • **start_date 和 end_date **, 必需參數。 要計算其差值的日期。 start_date 可以早于或晚于 end_date,也可以與它相同。
  • weekend 可選。 用于指定一個星期中哪些天是工作日和哪些天是周末, 有兩種表示方法, 一種是使用數字來表示weekend, 另一種是使用字符串來表是
    可以用下表中的數字來表示, 第一列是數字, 第二列是該數字代表的意義.
周末數 周末日
1 或省略 星期六、星期日
2 星期日、星期一
3 星期一、星期二
4 星期二、星期三
5 星期三、星期四
6 星期四、星期五
7 星期五、星期六
11 僅星期日
12 僅星期一
13 僅星期二
14 僅星期三
15 僅星期四
16 僅星期五
17 僅星期六

字符串是長度為7的0、1組合, 0表示工作日, 1表示周末, 如"0000011"表示周一到周五是工作日, 周六和周日是周末; "0000001"表示周一到周六是工作日, 周日是休息日.

  • holidays 可選。 一組可選的日期,表示要從工作日日歷中排除的一個或多個日期。 holidays 應是一個包含相關日期的單元格區域,或者是一個由表示這些日期的序列值構成的數組常量。 holidays 中的日期或序列值的順序可以是任意的。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,443評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,530評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,407評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,981評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,759評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,204評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,263評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,415評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,955評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,650評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,892評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,675評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,967評論 2 374