不借助聚合表直接在当前子表单中实现数字汇总(优化版)

楼主
我是社区第495831位番薯,欢迎点我头像关注我哦~
   细读牛中伟老师发表的《不借助聚合表直接在当前子表单中实现数字汇总的一种方法(简道云开发高阶技能)》一文后,继续发挥“山寨+优化”的精简精神,在牛老师原文基础上进行公式优化。
   

   简化的地方:

  1、【收款金额补位并截取右9位】字段: 牛老师原公式:RIGHT(CONCATENATE("#########",项目收款记账明细.收款金额,","),9)
     优化后:TEXT(项目收款记账明细.收款金额,"00000000.00")   

  2、【项目收款记账明细.当前已收款总金额】字段:牛老师原公式:=SUM(VALUE(SPLIT(CONCATENATE(SPLIT(LEFT(集合,项目收款记账明细.序号*9),"#")),",")[0]),VALUE(SPLIT(CONCATENATE(SPLIT(LEFT(集合,项目收款记账明细.序号*9),"#")),",")[1]),VALUE(SPLIT(CONCATENATE(SPLIT(LEFT(集合,项目收款记账明细.序号*9),"#")),",")[2]),VALUE(SPLIT(CONCATENATE(SPLIT(LEFT(集合,项目收款记账明细.序号*9),"#")),",")[3]),VALUE(SPLIT(CONCATENATE(SPLIT(LEFT(集合,项目收款记账明细.序号*9),"#")),",")[4]))


此公式弊端需要预先考虑总行数问题,需要按预估行数决定公式重复写多长。例如:牛老师本例中预估了5行,但是如果子表行数超过5行,将会出错。如果预估200行,那行代码将会写很长。

      优化后:SUMPRODUCT(SPLIT(LEFT(金额集合,项目收款记账明细.序号*11+项目收款记账明细.序号),","))












具体函数,不再解释,详见牛老师原文或官方帮助文档


测试页:https://rwre764grq.jiandaoyun.com/f/5fb71e3bd3313e0006db6dd8

编辑于 2020-11-20 10:56  
分享扩散:

沙发
发表于 2020-11-20 11:25:20
这就是大佬间的交流嘛
板凳
发表于 2020-11-20 16:13:19
非常不错,抛砖引玉,不断优化。点10000000000000000000000000个赞
地板
发表于 2020-11-26 10:31:43
不错,点赞!!!
5楼
发表于 2020-11-26 15:06:20
顶!同时希望官方能看看,这样的公式实现太复杂。什么时候能解决这个问题,在当前表单解决数据汇总问题
6楼
发表于 2020-11-26 15:18:42
这篇文章是我3年前写的,去年的擂台活动中,已经做了这个优化。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

5回帖数 7关注人数 8904浏览人数
最后回复于:2020-11-26 15:18

任务进行中

    话题进行中...
    返回顶部 返回列表