分组统计之汇总模式
在学习本课的内容之前,请打开CaseStudy目录下的示例文件"数据分析.Table"。
如果将GroupTableBuilder的Subtotal属性设置为True,那么就可以对分组统计结果进行二次统计,生成汇总模式。
示例一
按年月统计销售数量和金额,并生成汇总模式:
Dim b
As
New GroupTableBuilder("统计表1",DataTables("订单"))
b.Groups.AddDef("日期",DateGroupEnum.Year,"年")
'添加日期列用于分组,并用"年"代替原名称
b.Groups.AddDef("日期","月")
'添加日期列用于分组,并用"月"代替原名称
b.Totals.AddDef("数量")
'添加数量列用于统计
b.Totals.AddDef("金额")
'添加金额列用于统计
b.Subtotal
= True '生成汇总模式
b.Build
'生成统计表
MainTable =
Tables("统计表1")
'打开生成的统计表
执行结果:
示例二
在默认情况下,系统会根据所有分组生成汇总模式,不过我们可以精确控制。
GroupTableBuilder有个名为SubtotalLevel的整数型属性,用于设置生成汇总模式的层数。
SubtotalLevel的默认值为-1,根据所有分组生成汇总模式;设为0,只生成总计行,设为1,根据第一个分组生成汇总模式;设为2,根据前两个分组生成汇总模式,其余类推。
例如按年月统计销售数量和金额,并生成汇总模式,但只生成总计行:
Dim
b
As New
GroupTableBuilder("统计表1",DataTables("订单"))
b.Groups.AddDef("日期",DateGroupEnum.Year,"年")
'添加日期列用于分组,并用"年"代替原名称
b.Groups.AddDef("日期","月")
'添加日期列用于分组,并用"月"代替原名称
b.Totals.AddDef("数量")
'添加数量列用于统计
b.Totals.AddDef("金额")
'添加金额列用于统计
b.Subtotal
= True
'生成汇总模式
B.SubtotalLevel
= 0
'只生成总计行
b.Build
'生成统计表
MainTable = Tables("统计表1")
'打开生成的统计表
得到的统计结果: