如何对明细表中数据分类汇总求和(并展示在新明细表中)

楼主
我是社区第495831位番薯,欢迎点我头像关注我哦~
  此案例适合场景:明细表中有多条类别相同的数据,现需要对类别重复的金额进行汇总求合,然后按唯一类别重新写入分类汇总表中。
  



一、“报销明细”表中设一辅助字段:
  FZ分类+金额(单行文本),公式为:CONCATENATE(报销明细.分类,报销明细.金额)  注:将类别和金额合并,用于下一步按分类字段对金额汇总求和。

  

二、主表中设三个辅助字段:
  1、FZ分类集合(单行文本)公式:UNION(报销明细.分类)  注:用于将分类字段中重复值清除,使用方法详见说明

  2、FZ分类+金额集合(单行文本)公式:报销明细.FZ分类+金额   注:因为子表中无法直接调用另一个子表中的数据,所以需要先将“报销明细”子表中的“FZ分类+金额”字段,做一个集合,方便“分类汇总”明细表中以后引用。


  3、FZ分类行数(数字):公式:COUNT(UNION(报销明细.分类)) 注:计算经过清除重复值后的分类数,用于生成“分类汇总”明细表行数。

   


三、根据“FZ分类行数”对“分类汇总”用子表单联动的方法设置默认行数,并预填充序号。详见帮助文档


   


   在“分类汇总”子表中设一个单行文本字段“分类”,和数字字断“金额求和”,公式为:

       


  1、分类:SPLIT(FZ分类集合,",")[分类汇总.序号-1]
  SPLIT函数先将“FZ分类集合”文本,用“,”分割成数组,再根据序号带入值。

  2、金额求和:SUMPRODUCT(SPLIT(FZ分类+金额集合,分类汇总.分类))

  同理先用SPLIT函数将“FZ分类+金额集合”文本,用“分类汇总.分类”字段的值分割成数组。然后再用SUMPRODUCT函数求和。
  
  注:这里引用的功能是SUMPRODUCT函数在对数组求和时对于以数字开头的内容全部视同数字,自动忽略后面的非数字字符。例如:235油费,也视同235进行计算。所以对于数组 [10办公费,10办公费] 也是视同 [10,10] 进行求和,所以结果是20,此功能在官方帮助文档中没有表述。具体它的原理我也说不清楚,只是测试时偶然发现。所以实现了这一奇特功能。

   【提示】分类字段开头、结尾不能出现数字,否则有可能出错。

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





编辑于 2020-11-15 15:55  
分享扩散:
参与人数 +2 F豆 +200 理由
smtlwt + 100 很不错的功能应用,学到了很多!!
暖洋洋 + 100 太棒了,给你32个赞。

查看全部评分

来自 2#
发表于 2020-11-17 09:54:16
板凳
发表于 2020-11-14 05:01:39
来自手机
拜读大师的作品,受益匪浅!太赞了
地板
发表于 2020-11-14 22:21:33
5楼
发表于 2020-11-14 22:59:49
11111 编辑于 2020-11-14 23:56  
6楼
发表于 2020-11-15 00:50:47
分类求合,牛大师早已作出。此项可用作订单汇总材料分析类
7楼
发表于 2021-6-23 11:11:59
学习了。感谢!!!1
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

7回帖数 6关注人数 15483浏览人数
最后回复于:2023-10-10 13:47

返回顶部 返回列表