Foxtable(狐表)用户栏目专家坐堂 → 交叉统计的“合计”列能否变成“平均”


  共有175人关注过本帖树形打印复制链接

主题:交叉统计的“合计”列能否变成“平均”

帅哥哟,离线,有人找我吗?
wangnovel
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:201 积分:2133 威望:0 精华:0 注册:2012/10/6 17:19:00
交叉统计的“合计”列能否变成“平均”  发帖心情 Post By:2024/5/7 19:42:00 [只看该作者]

交叉统计中,勾选“水平方向自动汇总”,能够实现水平方向的汇总,有没有办法实现水平方向的求平均值?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107147 积分:544978 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/5/7 20:17:00 [只看该作者]

增加一个平均列,生成统计表然后遍历所有行所有列逐个计算,比如示例一:http://www.foxtable.com/webhelp/topics/3285.htm

Dim b As New CrossTableBuilder("统计表1",DataTables("订单"))
b.HGroups.AddDef("
客户"'添加客户列用于水平分组
b.VGroups.AddDef("
产品"'添加产品列用于垂直分组
b.Totals.AddDef("
数量"'添加数量列用于统计
b.Build '
生成统计表
Maintable = Tables("统计表1"'打开生成的统计表
DataTables("统计表1").DataCols.Add("平均", GetType(Double))
for each r as row in Tables("统计表1").rows
dim n as integer = 0
dim sum as double = 0
for each c as col in Tables("统计表1").cols
if c.name <> "客户" then
if r.isnull(c.name) = false then
n += 1
sum += r(c.name)
endif
end if
next
if n>0
r("平均") = sum / n
end if
next

 回到顶部