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)))))

当然,如果您使用的是最新版本的Excel(从Excel 2010开始),则可以使用NETWORKDAYS.INTL函数,该函数比早期的NETWORKDAYS函数具有更多的功能。两者之间最大的区别是NETWORKDAYS.INTL允许您指定函数应如何处理周末。因此,例如,在Sunil的情况下,仅将星期日视为“周末”,您可以使用以下公式:

=NETWORKDAYS(A1,B1,11,Holidays)

请注意,此版本与NETWORKDAYS函数的完整版本之间的唯一区别是包含了新的第三个参数。在这种情况下,值11表示仅应将星期日视为周末,但您可以根据需要使用其他任何其他参数值。

Number

Weekend Days

1

Saturday, Sunday

2

Sunday, Monday

3

Monday, Tuesday

4

Tuesday, Wednesday

5

Wednesday, Thursday

6

Thursday, Friday

7

Friday, Saturday

11

Sunday

12

Monday

13

Tuesday

14

Wednesday

15

Thursday

16

Friday

17

Saturday

您也可以使用NETWORKDAYS.INTL执行其他魔术,但这最好留给其他_ExcelTips_。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(12450)适用于Microsoft Excel 2007、2010、2013和2016。您可以在此处为Excel的较早菜单界面找到此技巧的版本:

链接:/ excel-Specifying_Different_Weekends_with_NETWORKDAYS [使用NETWORKDAYS指定不同的周末]。