HR妹妹靠excel神秘函數,解決薪水表計算難題!

  在製作薪水表、計算新員工或辭職員工薪水時,由於很多情況下他們不是月初入職或月末離職的,算他們的工作日天數時就會遇到一個棘手的難題:扣除周末天數。

記得有位HRMM是這樣做的,翻開日曆,然後在上面一天天的數天數。酒店行業每月都會有幾十名新入職和離職員工,一個數一分種,要數一個多小時。

HR妹妹靠excel神秘函數,解決薪水表計算難題!

其實,在excel2010新增的函數中,有一個正好可以解決這個問題。它就是:

NetWorkDays.INTL

(返回兩個日期之間的所有工作日數,使用參數指示哪些天是周末,以及有多少天是周末。周末和任何指定為假期的日期不被視為工作日。)

下面是2015年1月份的薪水表局部。

HR妹妹靠excel神秘函數,解決薪水表計算難題!

我們可以幫這位HR妹妹這樣設置公式:

C2=NETWORKDAYS.INTL(IF(B2<DATE(2015,1,1),DATE(2015,1,1),B2),DATE(2015,1,31),11)

公式說明:

IF(B2<DATE(2015,1,1),DATE(2015,1,1),B2);區分是不是新入職,如果不是新入職按本月1日作為開始日期,否則即為新入職,按實際入職日期算。

DATE(2015,1,31):本月最後一天作為計算的截止日期。

11: 表示本公司是一周六天工作日,星期日是休息日期。

語法(來自excel幫助文件)

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

NETWORKDAYS.INTL 函數語法具有以下參數 (參數:為操作、事件、方法、屬性、函數或過程提供信息的值。):

start_date 和 end_date 必需。要計算其差值的日期。start_date 可以早於或晚於 end_date,也可以與它相同。

weekend 可選。表示介於 start_date 和 end_date 之間但又不包括在所有工作日數中的周末日。weekend 是周末數值或字符串,用於指定周末時間。

weekend 數值表示以下周末日:

周末數 周末日

1 或省略 星期六、星期日

2 星期日、星期一

3 星期一、星期二

4 星期二、星期三

5 星期三、星期四

6 星期四、星期五

7 星期五、星期六

11 僅星期日

12 僅星期一

13 僅星期二

14 僅星期三

15 僅星期四

16 僅星期五

17 僅星期六

weekend 字符串值為 7 個字符長,該字符串中的每個字符代表一周中的一天,從星期一開始。1 代表非工作日,0 代表工作日。該字符串中只允許使用字符 1 和 0。使用 1111111 將始終返回 0。

例如,0000011 得到的結果是星期六和星期日為周末。

holidays 可選。一個包含一個或多個日期的可選集合,這些日期將從工作日日曆中排除。假期應該是包含日期的單元格區域,也可以是代表這些日期的序列值的數組常量。假期中的日期或序列值的順序可以是任意的。

註解

如果 start_date 晚於 end_date,則返回值將為負數,數量將是所有工作日的數量。

如果 start_date 在當前日期基準值的範圍之外,則 NETWORKDAYS.INTL 返回錯誤值 #NUM!。

如果 end_date 在當前日期基準值的範圍之外,則 NETWORKDAYS.INTL 返回錯誤值 #NUM!。

如果 weekend 字符串的長度無效或包含無效字符,則 NETWORKDAYS.INTL 返回錯誤值 #VALUE!。