历史版本3 :插入删除行后动态汇总 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 问题描述

在填报预览模式下,直接使用条件汇总公式可能不生效,如下:

1657558742539084.gif

1.2 实现效果

在填报模式下,输入数据到控件之后可以动态汇总,插入删除行后也能动态汇总。如下所示:

1657558867592892.gif

2. 示例编辑

2.1 模板设计

模板设计如下,A2、B2 单元格插入文本控件,A2 单元格设置纵向扩展。

2.2 汇总公式设置

A6 单元格输入公式:sum(B2[!0;!0]{A2 = "苹果"})

B6 单元格输入公式:sum(maparray(split(A2,","),if(item = "苹果",indexofarray(split(B2,","),index),0)))

A6 单元格公式解析参见帮助文档 条件汇总

B6 单元格公式解析如下:

公式解析

split(A2,",")、split(B2,",")

将A2、B2单元格扩展出来的所有值转化成数组,直接使用单元格引用的话,如果扩展的值只有一个,那么就无法被当做数组来计算。另外如果使用array()函数来转换,在部分jar下不生效。

maparray(split(A2,","),if(item = "苹果",indexofarray(split(B2,","),index),0))

将得到的A2扩展出来的数组进行转化。如果值等于苹果,那么就转化为B2扩展出来的对应下标的值,否则就等于0

sum(maparray(split(A2,","),if(item = "苹果",indexofarray(split(B2,","),index),0)))

将上一步转化后的数组进行汇总

2.4 预览效果

PC端如 1.2 小节所示。

移动端:

动态汇总h5.gif

3. 模板下载编辑

点击下载模板:

插入删除行后动态汇总.cpt

4. 注意事项编辑

注:A6 单元格公式在部分版本下会随着插入行刷新计算结果

       部分版本可以使用这个公式来实现效果:sum(greparray(array(B2),indexofarray(array(A2),index)="苹果"))

       此公式在11.0.5(Build#persist-2022.06.15.17.11.21.865)版本测试下,array公式和greparray公式没有生效。