Foxtable(狐表)用户栏目专家坐堂 → 交叉统计


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

主题:交叉统计

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


加好友 发短信
等级:幼狐 帖子:183 积分:1559 威望:0 精华:0 注册:2014/5/31 8:53:00
交叉统计  发帖心情 Post By:2018/11/18 13:03:00 [只看该作者]

交叉统计垂直汇总能设定统计条件吗?比如按产品垂直分组后,由于产品单位不一样,需对单位一样的进行合计

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


加好友 发短信
等级:幼狐 帖子:183 积分:1559 威望:0 精华:0 注册:2014/5/31 8:53:00
  发帖心情 Post By:2018/11/18 13:13:00 [只看该作者]

水平合计参与统计,垂直合计不参与统计

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


加好友 发短信
等级:幼狐 帖子:183 积分:1559 威望:0 精华:0 注册:2014/5/31 8:53:00
  发帖心情 Post By:2018/11/18 13:25:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:根据这个表.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:设定汇总条件后.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:应该得到的表.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:狐神 帖子:4627 积分:33767 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2018/11/18 13:33:00 [只看该作者]

上例子+说明

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


加好友 发短信
等级:幼狐 帖子:183 积分:1559 威望:0 精华:0 注册:2014/5/31 8:53:00
  发帖心情 Post By:2018/11/18 16:05:00 [只看该作者]

因为谷坊和排水渠 的单位不是亩,因此交叉统计后让这两参与水平合计,不垂直合计

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:示例.rar


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/18 23:57:00 [只看该作者]

Dim g As New CrossTableBuilder("统计表1", DataTables("小流域统计"))
g.HGroups.AddDef("年度")
g.VGroups.AddDef("措施")
g.Totals.AddDef("数量", "数量")
g.HorizontalTotal = True
g.VerticalTotal = True
g.Build()
Dim t As Table = Tables("统计表1")
Dim sum As Double = 0
For i As Integer = 1 To t.Cols.count-2
    Dim fdr As DataRow = DataTables("小流域统计").Find("措施='" & t.Cols(i).Caption & "'")
    If fdr IsNot Nothing AndAlso fdr("单位") <> "亩" Then
        sum += t.Rows(t.Rows.count-1)(i)
        t.Rows(t.Rows.count-1)(i) = Nothing
    End If
Next
t.Rows(t.Rows.count-1)(t.Cols.count-1) -= sum
MainTable = t

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


加好友 发短信
等级:幼狐 帖子:183 积分:1559 威望:0 精华:0 注册:2014/5/31 8:53:00
  发帖心情 Post By:2018/11/19 13:35:00 [只看该作者]

非常感谢,有点反了,应该是垂直汇总,水平不汇总。这些代码看不董,改不了,麻烦再改一下看看


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/19 14:46:00 [只看该作者]

Dim g As New CrossTableBuilder("统计表1", DataTables("小流域统计"))
g.HGroups.AddDef("年度")
g.VGroups.AddDef("措施")
g.Totals.AddDef("数量", "数量")
g.HorizontalTotal = True
g.VerticalTotal = True
g.filter = "年度 is not null"
g.Build()
Dim t As Table = Tables("统计表1")
Dim allsum As Double = 0
For j As Integer = 0 To t.Rows.count - 2
    Dim r = t.Rows(j)
    Dim sum As Double = 0
    For i As Integer = 1 To t.Cols.count-2
        Dim fdr As DataRow = DataTables("小流域统计").Find("措施='" & t.Cols(i).Caption & "' and 年度 = '" & r("年度") & "'")
        If fdr IsNot Nothing AndAlso fdr("单位") = "亩" Then
            sum += r(i)
        End If
    Next
    r(t.Cols.count-1) = sum
    allsum += sum
Next
t.Rows(t.Rows.count-1)(t.Cols.count-1) = allsum
MainTable = t

 回到顶部