交叉统计之汇总模式

在学习本课的内容之前,请打开CaseStudy目录下的示例文件"数据分析.Table"。

如果将CrossTableBuilder的Subtotal属性设置为True,那么就可以对交叉统计结果进行二次统计,生成汇总模式。

示例一

按年月统计各产品销售数量,并生成汇总模式:

Dim b As New CrossTableBuilder("统计表1",DataTables("订单"))

b.HGroups.AddDef("日期",DateGroupEnum.Year,"年") '添加日期列用于水平分组,按年分组

b.HGroups.AddDef("日期","月") '添加日期列用于水平分组,按月分组

b.VGroups.AddDef("产品","产品_{0}") '添加产品列用于垂直分组

b.Totals.AddDef("数量") '添加数量列用于统计
b.Subtotal = True '生成汇总模式
b.Build '生成统计表
Maintable = Tables("统计表1") '打开生成的统计表 

执行结果:

示例二

在默认情况下,系统会根据所有分组生成汇总模式,不过我们可以精确控制。
CrossTableBuilder有个名为SubtotalLevel的整数型属性,用于设置生成汇总模式的层数。
SubtotalLevel的默认值为-1,根据所有分组生成汇总模式;设为0,只生成总计行,设为1,根据第一个分组生成汇总模式;设为2,根据前两个分组生成汇总模式,其余类推。

例如按年月统计各产品的销售数量和金额,并生成汇总模式,但只生成总计行:

Dim b As New CrossTableBuilder("统计表1",DataTables("订单"))

b.HGroups.AddDef("日期",DateGroupEnum.Year,"年") '添加日期列用于水平分组,按年分组

b.HGroups.AddDef("日期","月") '添加日期列用于水平分组,按月分组

b.VGroups.AddDef("产品","产品_{0}") '添加产品列用于垂直分组

b.Totals.AddDef("数量") '添加数量列用于统计

b.Subtotal = True '生成汇总模式

b.SubtotalLevel = 0 '只生成总计行

b.Build '生成统计表

MainTable = Tables("统计表1") '打开生成的统计表

得到的统计结果:

 


本页地址:http://www.foxtable.com/webhelp/topics/2671.htm