使用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函數與公式大全》
,