以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  想汇总统计平均值怎么写啊  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=185459)

--  作者:guosheng
--  发布时间:2023/2/24 8:42:00
--  想汇总统计平均值怎么写啊
要进行金额 列的平均值计算,下面这个求和的应该怎么改啊?
b.Totals.AddDef("金额") \'添加金额列用于统计


--  作者:有点蓝
--  发布时间:2023/2/24 8:53:00
--  
b.Totals.AddDef("金额",AggregateEnum.Average) \'添加金额列用于统计
--  作者:guosheng
--  发布时间:2023/2/24 13:31:00
--  
只对于 列“金额1” 不为空的 进行统计有办法实现吗?目前的问题是存在多列汇总统计指标,简单按照一个指标筛选不为空不行啊。

b.Totals.AddDef("金额1",AggregateEnum.Average) \'添加金额列用于统计    只对 金额1 不为空的进行统计
b.Totals.AddDef("金额2",AggregateEnum.Average) \'添加金额列用于统计    只对 金额2不为空的进行统计

--  作者:有点蓝
--  发布时间:2023/2/24 13:34:00
--  
没有办法。这种需要手工统计,比如:http://www.foxtable.com/webhelp/topics/0681.htm
--  作者:guosheng
--  发布时间:2023/2/24 14:03:00
--  
提示这里语法错误,是表达式合成的有问题吗?  
DataTables("Sheet1").Compute("Avg( \'" & Tables("Sheet1").cols(k).name & "\')" )
--  作者:有点蓝
--  发布时间:2023/2/24 14:07:00
--  
DataTables("Sheet1").Compute("Avg(" & Tables("Sheet1").cols(k).name & ")" )
--  作者:guosheng
--  发布时间:2023/2/24 14:13:00
--  
数据是导入的excel,有些列识别成字符类型了,有办法不挨个修改字符数据类型,compute时进行转换计算吗?

图片点击可在新窗口打开查看此主题相关图片如下:6666.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2023/2/24 14:25:23编辑过]

--  作者:有点蓝
--  发布时间:2023/2/24 14:29:00
--  
试试
DataTables("Sheet1").SQLCompute("Avg(convert(" & Tables("Sheet1").cols(k).name & ",\'System.Double\'))" )
--  作者:guosheng
--  发布时间:2023/2/24 14:40:00
--  
我突然发现:b.Totals.AddDef("金额2",AggregateEnum.Average) ,求得结果跟我用自定义代码求得一样。难道这个.AddDe的Aggregate方法只统计不为空的数据吗
--  作者:有点蓝
--  发布时间:2023/2/24 14:59:00
--  
自定义代码都没有加查询条件

DataTables("Sheet1").SQLCompute("Avg(convert(" & Tables("Sheet1").cols(k).name & ",\'System.Double\'))" ,Tables("Sheet1").cols(k).name  & " is  not null")