Excel-計算不含六日的天數(NETWORKDAYS | excel日期相減工作天
在Excel的工作表中,常見到要找出一段日期中不含六日的天數,該如何處理?(參考下圖)你可以使用NETWORKDAYS函數很容易的求得結果,這次要用公式模擬這個函數的功能。【公式解析】(1)儲存格C2:=NETWORKDAYS(A2,B2)只要知道起始日期和終止日期,即可透過NETWORKDAYS函數求得不含六日的天數。以下要來模擬NETWORKDAYS函數的功能:(2)儲存格C2:=SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(A2&":"&B2)),2)<=5))複製儲存格C2,往下各列貼上。ROW(INDIRECT(A2&":"&B2)):將起始和終止二個日期轉換成一段儲存格陣列。例如:201...
在 Excel 的工作表中,常見到要找出一段日期中不含六日的天數,該如何處理?(參考下圖)
你可以使用 NETWORKDAYS 函數很容易的求得結果,這次要用公式模擬這個函數的功能。
【公式解析】
(1) 儲存格C2:=NETWORKDAYS(A2,B2)
只要知道起始日期和終止日期,即可透過 NETWORKDAYS 函數求得不含六日的天數。
以下要來模擬 NETWORKDAYS 函數的功能:
(2) 儲存格C2:=SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(A2&":"&B2)),2)<=5))
複製儲存格C2,往下各列貼上。
ROW(INDIRECT(A2&":"&B2)):將起始和終止二個日期轉換成一段儲存格陣列。例如:2012/1/1 ~ 2012/3/1 轉換為 A40909:A40969。
WEEKDAY(ROW(INDIRECT(A2&":"&B2)),2)<=5:透過 WEEKDAY 函數以參數 2 找出所有星期一到星期五的陣列。INDIRECT 函數可以傳回文字串所指定的參照位址。
再以 SUMPRODUCT 函數計算星期一到星期五的陣列數,其中「--」是要將 True/False 陣列透過「--」運算轉換為 1/0 陣列,再行加總。
【補充資料】
詳細函數說明請參閱微軟網站:
INDIRECT:http://office.microsoft.com/zh-tw/excel-help/HP010342609.aspx[1]
INDIRECT:傳回文字串所指定的參照位址。
語法:INDIRECT(ref_text,[a1])
ref_text:單一儲存格的參照位址,...