奥尔加为一所私立学校保留书本。对于每个注册的学生,她都有一个录入日期和一个放学日期。她需要弄清楚要给每个学生多少月的账单。如果学生上课至少五天,则该月应计入帐单中。如果少于五天,则无需为该月计费。她还需要排除假期和周末。

NETWORKDAYS函数的使用将是对该问题任何解决方案不可或缺的一部分。如其他_ExcelTips_中所述,此函数是Analysis ToolPak的一部分。假设您启用了ToolPak,该函数将计算两个日期之间的净工作日数。它考虑到了周末以及节假日。

因此,假设您在A1中有学生的入学日期,在A2中有放学日期,那么您唯一需要做的就是设置假期列表。您可以通过简单地在一系列单元格中输入假期来做到这一点。为每个单元格输入一个日期,然后选择范围。定义一个名称以引用该范围,例如MyHolidays。

然后,您可以使用以下公式:

=(NETWORKDAYS(A1, DATE(YEAR(A1), MONTH(A1) + 1,0), MyHolidays) >= 5)

+ (NETWORKDAYS(DATE(YEAR(A2), MONTH(A2),1), A2, MyHolidays) >= 5)

+ DATEDIF(DATE(YEAR(A1), MONTH(A1) + 1, 1), DATE(YEAR(A2), MONTH(A2), 1), "m")

该公式很长,需要进行一些检查。请注意,除了NETWORKDAYS函数外,它还使用DATEDIF函数,该函数用于确定两个日期之间的时差并以不同方式返回间隔。在这种情况下,它与“ m”

一起使用参数,这意味着它以月数形式返回间隔,这正是Olga所需要的。

公式的第一部分(首次使用NETWORKDAYS函数)用于确定输入日期(在单元格A1中)和输入日期所在的月末之间有多少天。如果此值大于或等于5(Olga的临界值),则返回值1,因为该值计为单个可计费月份。

公式的下一部分(NETWORKDAYS函数的第二次使用)用于确定放置日期的月份中是否至少有五个上课日。如果是这样,则再次返回值1,因为这是一个可计费的月份。

然后,使用DATEDIF函数返回输入月份和删除月份之间的完整月份数。您最终得到的是应该为学生支付的月数。

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

本技巧(3271)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: