如图,ABC三列为原始列,记录员工上班打卡的时间,其中每天打卡的次数并不一致,想要求得张三总的工作时长,公式如下:
=LET(x,((B:B,A:A=A2)),SUM(MAP(x,(m,LET(s,(C:C,(A:A=A2)*(B:B=m)),MAX(s)-MIN(s)))))*24)
公式思路:
将公式注释一下:
=LET(x,((B:B,A:A=A2)),——
设变量x,列举出打卡的每一天并去除重复值。
SUM(
MAP(x,(m,LET(s,(C:C,(A:A=A2)*(B:B=m)),MAX(s)-MIN(s))))—
以张三的每一天为初始条件,遍历每一天,找出每天的所有打卡时间,并用最大-最小得到上班时间。
)*24——
每天的时间相加得到以天为单位的工作时间,再乘以24就得到以小时为单位的工作时间,这就是最终想要的结果 。
函数变核心的变革即是变量,对变量进行遍历最终得出结果,这是函数式编程的思想,会从根本上改变函数的使用方法和思维。map\scanbyrow等等都是与搭配的函数,它们在一起能够解决以前只能用辅助列才能得出的结果,由半自动的办公,变成完成自动化的办公。
———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,永久会员只需109元,全站资源免费下载 点击查看详情
站 长 微 信: nanadh666
声明:1、本内容转载于网络,版权归原作者所有!2、本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。3、本内容若侵犯到你的版权利益,请联系我们,会尽快给予删除处理!