Foxtable(狐表)用户栏目专家坐堂 → [求助]交叉统计垂直占比


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

主题:[求助]交叉统计垂直占比

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/8 15:41:00 [显示全部帖子]

是有点问题,要用代码处理一下。

 

Dim g As New CrossTableBuilder("统计表1", DataTables("交叉统计测试"))
g.HGroups.AddDef("商品")
g.HGroups.AddDef("品名")
g.VGroups.AddDef("尺寸名")
g.Totals.AddDef("数量", "数量")
g.VerticalTotal = True
g.VerticalProportion = True
g.Build()

For Each c As Col In Tables("统计表1").Cols
    If c.Caption Like "*占比" Then
        Dim name As String = c.name.Replace("vp", "")
        Dim sum As Double = Tables("统计表1").Compute("sum(" & name & ")", "商品 <> '合计'")
        For Each r As Row In Tables("统计表1").Rows
            r(c.name) = r(name) / sum
        Next
    End If
   
Next
MainTable = Tables("统计表1")


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/11 11:00:00 [显示全部帖子]

 水平份额直接写


Dim g As New CrossTableBuilder("统计表1", DataTables("交叉统计测试"))
g.HGroups.AddDef("商品")
g.HGroups.AddDef("品名")
g.VGroups.AddDef("尺寸名")
g.Totals.AddDef("数量", "数量")
g.VerticalTotal = True
g.VerticalProportion = True
g.HorizontalProportion = True
g.Build()

For Each c As Col In Tables("统计表1").Cols
    If c.Caption Like "*占比" Then
        Dim name As String = c.name.Replace("vp", "")
        Dim sum As Double = Tables("统计表1").Compute("sum(" & name & ")", "商品 <> '合计'")
        For Each r As Row In Tables("统计表1").Rows
            r(c.name) = r(name) / sum
        Next
    End If
   
Next
MainTable = Tables("统计表1")


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/11 11:46:00 [显示全部帖子]

 你查看一下生成表的表结构就知道了

 

 水平份额,就是先循环每一列,合计总额,然后再逐列计算。

 

http://www.foxtable.com/help/topics/0193.htm

 


 回到顶部