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

目录:

1. 概述编辑

1.1 问题描述

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

1657558742539084.gif

1.2 实现效果

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

1657558867592892.gif

2. 示例编辑

2.1 模板设计

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

2.2 汇总公式设置

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

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

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

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.3 预览效果

1)PC端

PC端效果如 1.2 小节所示。

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公式没有生效。