【雪中送炭】行业实例答疑:计算出差天数
创作者俱乐部成员
困难如山,我有金山。
欢迎收看本期【雪中送炭】新专题,我是学弟。
【雪中送炭】专题,均为实际生产过程中的各行业的案例作为素材,进行实例答题,虽不一定能“药到病除”,但至少能“雪中送炭”,略尽学弟一点绵薄之力。
社区ID:清华学弟任泽岩
WPS办公软件培训讲师
- 金山办公最有价值专家(KVP)、金山办公认证讲师(KCT)、金山WPS社区创作者俱乐部成员、金山文档金鹰社社员、表格菁培班-函高一期毕业生;
- 中国南方航空公司十佳教员、金牌微课制作师,全国培联/培协推优大赛金奖获得者,《培训》杂志“师道匠心”全国金牌内训师称号获得者,两度获得Toastmasters国际演讲会International Speech Contest项目冠军。
今天我们来帮助一位源数据表记录不规范的同事,计算一下所选同事出差的天数:
对于出差日期的每日记录,如果把开始和结束日期写在一起,确实会给很多使用者造成不便。(这种现象其实很普遍!)尽管我们很容易想到“把开始日期挑出来”、“把结束日期挑出来”、“两者再相减做代数和”这种思路,但我们实际用的时候,用户的“平均水平”往往达不到FIND怎么用,不知道Ctrl+E智能填充,不知道“分列”的功能等等这一个层级,导致好多同事手工输入,或者手工计算出差的天数。
【方法一】
其实大家知道TEXTBEFORE和TEXTAFTER函数以后,提取"-"前后的字符串,就简单了很多。
因此,这是一个非常好想到的思路,就是用这对兄弟分别把前、后字符串提取出来,作差。
然后利用CHOOSEROWS函数找到你想要的那一行,用MATCH函数把姓名在姓名池数组里去精确匹配。
充分利用动态数组的强大功能,我们不难写出:
【方法二】
正所谓:好想的方法不好算,好算的方法不好想。
第二种方法,其实是看到CHOOSEROWS+MATCH这一步看起来略显笨拙,学弟给到一个数组计算的思路,用“=”等于号的“判断”功能,生成一个只有一个TRUE、剩下都是FALSE的数组,用这个数组去乘后面的内容。这样,与FALSE相乘的值全为0,与TRUE相乘的值全为自身,最后再一加和,那么就会把所有的0都屏蔽掉,只保留了正确的唯一一行数值。
此外,二者“相减”,我们也可以将分列的结果与 {-1,1} 这个数组相乘,这样,前面的出差开始时间就自动取负,作为减数,后面的出差结束时间就自动不变,作为被减数,二者在SUM函数的加持下自动作差。
如下图所示:
【规范又简易的方法】
学弟给到这位提问的用户一个建议,在平时录入时,分别按照“开始”、“结束”两列分别录入,这样作差也方便,而且只用一个全国人民都会用的VLOOKUP函数就可以解决查找问题了:
因此:源数据表的规范,直接影响到后期的数据处理时间成本。
这也是菁培班邓华老师反复提醒我们注意的事情!养成良好的使用习惯和三表结构!
下面是本次教程的练习文档链接:
【金山文档】 行业实例答疑:计算出差天数
https://kdocs.cn/l/chqjumj9FZ9Q
如果你觉得今天的教程对你有帮助,欢迎在下方为我点一颗小红心💖💖💖哦!
同时,你也可以将感悟或者收获在下方留言,或者在评论区留下你的困惑,我会挑选有代表性的问题,推出更多的教程跟大家分享哦!
>>>欢迎收看【清华学弟任泽岩】WPS社区个人帖子合集<<<
https://home.wps.cn/topic/14780?chan=share&fromshare=copylink
创作者俱乐部成员
创作者俱乐部成员
创作者俱乐部成员
创作者俱乐部成员
创作者俱乐部成员
创作者俱乐部成员
创作者俱乐部成员