分组计算列汇总
报表中汇总的计算,有时不是简单地对某个单元格进行汇总,而是对某几个计算列进行汇总。接下来,我们通过一个含分组计算列汇总的报表实例,来了解分组计算列汇总。
报表中的数据,来自下面的数据集:
详细了解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)。
{}操作符与:操作符常用在格集表示法中,详细了解这两项操作符更深入的用法,请参考:格集模型