首頁>科技>

使用WORKDAY函式計算相隔指定工作日的日期WORKDA Y函式用於返回在起始日期之前或之後、與該日期相隔指定工作日的日期。函式的基本語法如下。

第一引數start_date為起始日期;第二引數days為開始日期之前或之後不含週末及節假日的天數;第三引數holidays為可選引數,包含需要從工作日曆中排除的一個或多個節假日日期。

示例13-41 計算專案結束日期圖13-65為某公司專案施工計劃表的部分內容,B列為專案開始日期,C列為各專案的預計天數,F列為法定節假日,需要計算出各專案的結束日期。

在D2單元格中輸入以下公式,並向下複製到D6單元格。=WORKDAY(B2,C2,F$2:F$4)公式中,B2為起始日期,指定的工作日天數為8,“F$2:F$4”單元格區域為需要排除的節假日日期,Excel計算時自動忽略這些日期來計算工作日。

能夠自定義週末 引數的工作日計算函式WORKDAY.INTLWORKDAY .INTL函式的作用是使用自定義週末引數,返回在起始日期之前或之後、與該日期相隔指定工作日的日期,基本語法如下。

start_date引數表示開始日期。days引數表示開始日期之前或之後的工作日的天數,正值表示未來日期,負值表示過去日期,零值表示開始日期。weekend為可選引數,用於指定一週中屬於週末和不作為工作日的日期。不同weekend引數對應的自定義週末日如表13-7所示。

weekend引數也可以使用由1和0組成的7位數字符串,0為工作日,1為休息日。這種表現形式更為直觀,也更便於記憶。例如,指定星期二、星期四和星期六為休息日,則可使用“0101010”表示。在字串中僅允許使用字元1和0,並且至少要包含1個1或1個0。holidays為可選引數,表示要從工作日日曆中排除的日期。該引數可以是一個包含相關日期的單元格區域,也可以是由日期序列值構成的陣列常量。

示例13-42 按自定義週末計算專案完成日期透過設定不同的weekend引數,WORKDAY.INTL函式可以靈活地實現非5天工作日的日期計算。在圖13-66所示的專案施工計劃表中,需要根據開始日期和預計天數,計算出各專案的結束日期。計算時需按每週6天工作制,以星期日為休息日計算,並且需要去除F列的法定節假日。

在D2單元格中輸入以下公式,並向下複製到D6單元格。=WORKDAY.INTL(B2,C2,11,F$2:F$4)WORKDAY.INTL函式的第三引數使用11,表示僅以星期日作為休息日。如果第三引數使用由1和0組成的7位數字符串,可以寫成以下公式。=WORKDAY.INTL(B2,C2,"0000001",F$2:F$4)

使用NETWORKDAYS函式計算兩個日期之間的工作日天數N ETWORKDAYS函式用於返回兩個日期之間完整的工作日天數,該函式的語法如下。

第一引數start_date為起始日期;第二引數end_date為結束日期;第三引數holidays可選,是需要排除的節假日日期。

示例13-43 計算員工應出勤天數圖13-67為某公司新入職員工的部分記錄,需要根據入職日期,計算員工該月應出勤天數。

在C2單元格中輸入以下公式,並向下複製到C8單元格。=NETWORKDAYS(B2,EOMONTH(B2,0))“EOMONTH(B2,0)”部分用於計算出員工入職所在月份的最後一天。NETWORKDAYS函式以入職日期作為起始日期,以入職所在月份的最後一天作為結束日期,計算出兩個日期間的工作日天數。本例中省略第三引數,實際應用時如果該月份有其他法定節假日,可以使用第三引數予以排除。

示例13-44 計算調休情況下的員工應出勤天數在實際的工作日計算中,除了考慮法定節假日的因素外,還要考慮調休日期安排。如圖13-68所示,需要根據F列和G列的放假時間及調休安排,計算2018年員工每月應出勤天數。在G2單元格中輸入以下公式,並向下複製到G13單元格。=NETWORKDAYS(A2,B2,F$2:F$28)+COUNTIFS(G$2:G$28,">="&A2,G$2:G$28,"<="&B2)

NETWORKDAYS函式以每月的第一天作為起始日期,以每月的最後一天作為結束日期,第三引數引用F$2:F$28單元格區域的法定節假日,計算出兩個日期間不包含法定節假日的工作日天數。再使用COUNTIFS函式,分別統計G$2:G$28單元格區域中的調休日期大於等於A2開始日期,並且小於等於B2結束日期的個數,也就是統計在當前日期範圍中的調休天數。最後用不包含法定節假日的工作日天數加上當前日期範圍中的調休天數,得到當月應出勤天數。

使用NETWORKDAYS.INTL函式的自定義週末引數計算間隔工作日NET WORKDAYS.INTL函式的作用是使用自定義週末引數,返回兩個日期之間的工作日天數。該函式的語法如下。

第一引數start_date表示起始日期。第二引數end_date表示結束日期。第三引數weekend為可選引數,表示指定的自定義週末型別,與13.7.2節中WORKDAY.INTL函式的第三引數規則相同。第四引數holidays為可選引數,表示包含需要從工作日曆中排除的一個或多個節假日日期。

示例13-45 處理企業6天工作制的應出勤日期如圖13-69所示,需要根據新員工的入職日期,按每週6天工作日、星期日為休息日,計算員工該月應出勤天數。

在C2單元格中輸入以下公式,並向下複製到C8單元格。=NETWORKDAYS.INTL(B2,EOMONTH(B2,0),11)NETWORKDAYS.INTL函式的第三引數使用11,表示僅星期日為休息日。以下公式也可完成相同的計算。=NETWORKDAYS.INTL(B2,EOMONTH(B2,0),"0000001")本例中省略第四引數,實際應用時如果該月份有其他法定節假日,可以使用第四引數予以排除。

示例13-46 使用NET WORKDAYS.INTL函式計算指定月份中有多少個星期日根據NETWORKDAYS.INTL函式能夠自定義週末引數的特點,能夠方便地計算出指定日期所在月份中包含多少個星期日。

如圖13-70所示,在B2單元格中輸入以下公式,並向下複製到B7單元格。=NETWORKDAYS.INTL(EOMONTH(A2,-1)+1,EOMONTH(A2,0),"1111110")

“EOMONTH(A2,-1)”部分用於計算出A2單元格日期上一個月的最後一天,結果加1,即為當前月的第一天。“EOMONTH(A2,0)”部分用於計算出A2單元格日期當前月份的最後一天。NETWORKDAYS.INTL函式分別以當前月的第一天和當前月的最後一天作為起止日期,第三引數使用“1111110”,表示僅以星期日作為工作日,計算兩個日期之間的工作日數,結果就是日期所在月份中包含的星期日天數。

---------------------------------------------------------------------

推薦圖書

北京大學出版社

Excel 2016函式與公式大全

15
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • iPhone XR換到小米11,他寫下這樣一段感受