【雪中送炭】行业实例答疑:计算出差天数

清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

困难如山,我有金山。

欢迎收看本期【雪中送炭】新专题,我是学弟。

【雪中送炭】专题均为实际生产过程中的各行业的案例作为素材,进行实例答题,虽不一定能“药到病除”,但至少能“雪中送炭”,略尽学弟一点绵薄之力。

【作者简介】
社区ID:清华学弟任泽岩
WPS办公软件培训讲师
- 金山办公最有价值专家(KVP)、金山办公认证讲师(KCT)、金山WPS社区创作者俱乐部成员、金山文档金鹰社社员、表格菁培班-函高一期毕业生;
- 中国南方航空公司十佳教员、金牌微课制作师,全国培联/培协推优大赛金奖获得者,《培训》杂志“师道匠心”全国金牌内训师称号获得者,两度获得Toastmasters国际演讲会International Speech Contest项目冠军。

今天我们来帮助一位源数据表记录不规范的同事,计算一下所选同事出差的天数:

对于出差日期的每日记录,如果把开始和结束日期写在一起,确实会给很多使用者造成不便。(这种现象其实很普遍!)尽管我们很容易想到“把开始日期挑出来”、“把结束日期挑出来”、“两者再相减做代数和”这种思路,但我们实际用的时候,用户的“平均水平”往往达不到FIND怎么用,不知道Ctrl+E智能填充,不知道“分列”的功能等等这一个层级,导致好多同事手工输入,或者手工计算出差的天数。

【方法一】

其实大家知道TEXTBEFORETEXTAFTER函数以后,提取"-"前后的字符串,就简单了很多。

因此,这是一个非常好想到的思路,就是用这对兄弟分别把前、后字符串提取出来,作差。

然后利用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&amp;fromshare=copylink

辽宁省
浏览 1296
1
16
分享
16 +1
12
1 +1
全部评论 12
 
玉竹
厉害啊
· 湖南省
1
回复
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

感谢支持!
· 辽宁省
回复
 
亂雲飛渡
很好
· 广东省
1
回复
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

感谢支持!
· 辽宁省
回复
 
HC.旋
跟着老师学
· 江苏省
1
回复
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

感谢支持!
· 辽宁省
回复
 
鱼米
太棒了太棒了太棒了
· 浙江省
1
回复
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

感谢支持!
· 辽宁省
回复
 
志尧ZhiYao
志尧ZhiYao

创作者俱乐部成员

get
· 江西省
1
回复
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

感谢支持!
· 辽宁省
回复
 
rika
· 广西
1
回复
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

感谢支持!
· 辽宁省
回复