1. 概述
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)移动端
移动端效果如下图所示:
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公式没有生效。