分组计算列汇总- 分组式报表-复杂报表设计教程
目录

分组计算列汇总

报表中汇总的计算,有时不是简单地对某个单元格进行汇总,而是对某几个计算列进行汇总。接下来,我们通过一个含分组计算列汇总的报表实例,来了解分组计算列汇总。

报表中的数据,来自下面的数据集:


 

详细了解sql检索数据集制作,请参考:sql检索

制作向导

先绘制出报表基本框架,然后使用制表助手实现这张以类别分组的分组报表。制表助手会自动在报表中生成相应的公式和属性。

追加库存价值列,用于计算对应产品的库存价值,单元格表达式为:=C2*D2;

追加库存货物价值合计行,用于计算对应类别货物库存价值的合计量,单元格表达式为:=sum(E2{})或=sum(B2{},C2*D2),A3单元格左主格设置为A2;

追加库存货物价值总计行,用于计算所有库存货物总价值,单元格表达式为:=sum(E2{})。


 

详细了解制表助手的使用,请参考:制表助手

详细了解制作报表的数据集,请参考:如何新建数据集

功能点说明

主子格与扩展设置

A2以类别进行分组,其表达式为:=demo_product.Group(类别,true)该表达式的值有多个,因此类别分组的单元格默认会主动向下扩展,并且默认能带动其右侧的单元格跟随其向下扩展。这时,主动扩展的单元格成为主格,被动跟随扩展的单元格成为附属格或子格。主、子格是相对的概念。

对于例子中的库存货物价值的单元格,其处于类别分组单元格(A2)的下侧,默认情况下它不是类别分组单元格的子格,因此,需要使用设计器菜单栏的“扩展”功能,人为设置主子格关系,即设置合计单元格跟随类别分组单元格向下扩展,才能实现分组汇总计算。

详细了解主子格的概念和应用,请参见:主格

sum()

E3单元格表达式为:=sum(E2{})或=sum(B2{},C2*D2),实现求以A2分组的对应类别的库存价值的合计值,sum(B2{},C2*D2),表示求得当前主格扩展区域内所有扩展后C2*D2的合计值{选择条件表达式}操作符中可以写条件表达式,当{}中没有值时,默认取得当前主格扩展区域内所有扩展后对应单元格的所有值。(E2单元格表达式为=C2*D2,所以=sum(E2{})与=sum(B2{},C2*D2)表达式的计算结果一致)。

sum()是产品中的数据集函数-范围计算函数,关于该函数请参考:sum()

 

Sum函数不仅可以求某字段或某单元格扩展的所有值的合计值,还可以对某指定区域内数据求和,例如:使用sum(A2:C2)求从A2到C2的合计值。 ':'操作符意为'到',例如A1:A2(A1到A2)。

{}操作符与:操作符常用在格集表示法中,详细了解这两项操作符更深入的用法,请参考:格集模型