使用NETWORKDAYS(Microsoft Excel)指定不同的周末
Sunil可以使用NETWORKDAYS函数返回两个日期之间的常规工作日数。该函数假定星期六和星期日不是工作日,但在Sunil的组织中,只有星期日才算作非工作日。他想知道是否有一种使用NETWORKDAYS的方法,并指定只将星期日排除在返回的计数之外。
您可以使用基于NETWORKDAYS函数的公式来确定。假设开始日期在A1中,结束日期在B1中,以下公式将检查两个日期之间的天数,并实质上返回该范围内的非星期日天数:
=NETWORKDAYS(A1,B1)+SUMPRODUCT(--(WEEKDAY (ROW(INDIRECT(A1&":"&B1)))=7))
当然,由于星期日是一周中唯一的一天,因此您可以简单地跳过NETWORKDAYS的使用,而使用SUMPRODUCT来确定是否应该计算这一天:
=SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(A1&":"&B1)))>1))
如果您希望该范围内有假期,并且这些假期都在命名的“假期”范围内,那么您需要返回到在公式中使用NETWORKDAYS:
=NETWORKDAYS(A1,B1,holidays)+SUMPRODUCT(-- (WEEKDAY(ROW(INDIRECT(A1&":"&B1)))=7),-- (NOT(ISNUMBER(MATCH(ROW(INDIRECT(A1&":"&B1)) ,holidays,0)))))
Chip Pearson在其站点上涵盖了构成一周工作日的其他方式:
http://www.cpearson.com/excel/betternetworkdays.aspx
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(7093)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: