送人玫瑰,手有余香,请将文章分享给更多朋友
动手操作是熟练掌握EXCEL的最快捷途径!
【置顶公众号】或者【设为星标】及时接收更新不迷路
小伙伴们好,今天给大家出道题目。给你两个日期,以及在这两个日期之间的某几个单独的日期。让你快速计算去除掉这几个单独日期后两个日期间的天数。
怎么样,朋友们能供快速算出吗?
有朋友会说了,这个还不简单!
在单元格C2中输入公式“=SUM(1-COUNTIF($E$2:$E$7,ROW(INDIRECT(A2&":"&B2))))”,三键回车并向下拖曳即可。
思路:
利用ROW函数和INDIRECT函数将起止日期转换为一组连续的序列
利用COUNTIF函数在E2:E7这个范围中统计上面这个序列中每个数值在这个范围区间中的个数。由于数据是不重复的,因此,能供找到的就计“1”,结果如下{1;1;0;0;1;0;0;0;0;0}
接下来再用1减这个内存数组,剩余的部分就是没有找到的数值的个数,最终用SUM函数求和即可
COUNTIF函数表示,自己单独就可以搞定的。
在单元格C2中输入公式“=B2-A2-COUNTIFS($E$2:$E$7,">="&A2,$E$2:$E$7,"<="&B2)+1”,并向下拖曳即可。
这个不解释了,逻辑非常简单。
但是大家别忘了,EXCEL中专门有一个函数来解决这类问题的。
等一下!为什么这个公式的结果不正确呢?啊,原来NETWORKDAYS函数除了把排除日期给减掉之外,也把起始日期之间的周末也给减去了。因此这个函数用在这里是不合适的。
没关系,我们稍作调整。
在单元格C2输入公式“=NETWORKDAYS.INTL(A2,B2,"0000000",$E$2:$E$7)”,并向下拖曳即可。
NETWORKDAYS.INTL函数和NETWORKDAYS函数相比,多了一个参数,是用来自定义周末用的。
NETWORKDAYS.INTL函数的第三个参数既可以是单个的数字,来指代不同的周末;也可以是像这样"0000000"的字符串。字符串的长度为7,由1和0构成。1代表是周末,0代表是工作日。"0000000"的含义就是7天都是工作日。
这样,这个公式的结果就正确了。
朋友们,你们学会了吗?搞清楚了NETWORKDAYS.INTL函数和NETWORKDAYS函数的异同点了吗?
本期内容练习文件提取方式:
链接:https://pan.baidu.com/s/1510cKsGWWK40TnWYU2V0XA?pwd=2xgl
提取码:2xgl
-END-
长按下方二维码关注EXCEL应用之家
面对EXCEL操作问题时不再迷茫无助
我就知道你“在看”
联系客服