如何在Excel中實現工作日的計算

如何在Excel中實現工作日的計算

  在excel中,通過將兩個日期值進行減運算,能夠得到這兩個日期之間所間隔的具體天數;而將一個日期值與一個表示天數的常數相加減,則能夠得到一個距離該日期x天的日期值。如:「2000/05/31」-「2000/05/01」得到31,「2000/05/01」加上90得到「2000/07/30」。這是excel提供的一個雖然簡單卻相當實用的日期計算功能。

  但是,這一功能在實際工作中的局限性,使其無法滿足更高層次的需要,特別是「工作日」這一概念逐漸在各領域被廣泛應用的今天,許多工作都需要進行與之相關的計算。最常見的例如員工的出勤天數、交貨期的計算、付款日的計算等等。excel為用戶的這些需求提供了怎樣的解決方案呢?

  使用networkdays()函數

  networkdays(start_date,end_date,holidays)函數是專門用於計算兩個日期值之間完整的工作日數值。這個工作日數值將不包括雙休日和專門指定的其他各種假期。

  networkdays()函數帶有3個參數:start_date表示進行日期,end_date為終止日期,holidays表示作為特定假日的一個或多個日期。這些參數值既能夠手工輸入,也能夠對單元格的值進行引用。下面以計算本年5月份共有多少個工作日為例,具體介紹networkdays()函數的用法:

  在b1中輸入起始日期「2000/05/01」,在b3中輸入終止日期「2000/05/31」,在e2、e3中輸入法定假日「2000/05/01」和「2000/05/02」。通過公式「=networkdays(b2,b4,e2:e3)」咱們就能夠方便地計算出5月份的工作日數了。當然,咱們也能夠直接輸入公式「=networkdays(″2000-5-1″,″2000-6-1″,{″2000-5-1″,″2000-5-2″})」來得到這個結果。

  使用workday()函數

  workday(start_date,days,holidays)函數是用來計算某日期(起始日期)之前或之後相隔指定工作日的某一日期的日期值。它也帶有3個參數:start_date表示進行日期,days為start_date之前或之後不含周末及節假日的天數。days為正值將產生未來日期;為負值產生過去日期,holidays表示作為特定假日的一個或多個日期。

  假設咱們在4月30日與客戶簽訂了一份購銷合同,合同規定90個工作日之後交貨。所以,咱們應當怎樣計算到底哪一天交貨呢?

  在b1中輸入起始日期「2000/05/01」,在b3中輸入合同規定時間「90」,在e2、e3中輸入法定假日「2000/05/01」和「2000/05/02」。通過公式「=workday(b2,b4,e2:e3)」,咱們能夠清楚的理解交貨日期是「2000/09/05」。同上,咱們還能夠直接輸入公式「=workday(″2000-5-1″,90,{″2000-5-1″,″2000-5-2″})」來進行計算。

  載入擴展函數

  已經迫不及待地打開excel進行嘗試的朋友可能要嚷了,你說的這兩個函數我這兒怎麼沒有啊?別急,點擊「工具」菜單中的「載入宏」,找到「分析工具庫」,給它一個小勾,再「確定」,ok!原來,這兩個函數是嵌於「分析工具庫」這個載入宏中的excel擴展函數,而excel在默認狀態下是不載入這個載入宏的。

  另外一個值得注意的問題是:將表示日期的單元格的數字格式設置成「日期」型,而表示天數的單元格則千萬不要設置成「日期」型,否則你可能會看到「1900/02/21」或「36774」這樣奇怪的結果出現喲!

推薦閱讀:

不喜歡的工作,能給你帶來些什麼?
你為什麼找不到工作?
豌豆莢的員工工作方式是什麼樣的?
7個建議幫你完成更多的工作-工作指南
職場老手的10年工作感悟 句句見血

TAG:工作 | 計算 | Excel | 實現 |