Foxtable(狐表)用户栏目专家坐堂 → [求助]如何做统计表


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

主题:[求助]如何做统计表

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


加好友 发短信
等级:婴狐 帖子:76 积分:804 威望:0 精华:0 注册:2015/2/13 9:06:00
[求助]如何做统计表  发帖心情 Post By:2015/6/9 14:58:00 [只看该作者]

各位老师:

做了个统计表

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1_201506091121.zip

不知道该怎样实现,请老师指教:

1,数据表1,数据表2结构相同,日期列,名称列数据相同,“指标1”,“指标2”,“指标3”的数据不同。

2,要计算两表,“指标1”,“指标2”,“指标3”的数据差占比到汇总表。

   即:汇总表的指“标项列”的值为指标1,指标2,指标3,......。

        汇总表的第一行为(数据表1“指标1”-数据表2“指标1”)/数据表1“指标1”,分别计入“小于负100”列,“负100到0”列,等各列。

        汇总表的第二行为(数据表1“指标2”-数据表2“指标2”)/数据表1“指标2”,分别计入“小于负100”列,“负100到0”列,等各列。

         .

         .

         .

         .


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/9 15:06:00 [只看该作者]

Dim cs() As String = {"指标1", "指标2", "指标3"}
For Each c As String In cs
    Dim ndr As DataRow = DataTables("汇总").AddNew
    ndr("指标项") = c
    Dim d1 As Double = DataTables("数据1").Compute("sum(" & c & ")")
    Dim d2 As Double =     DataTables("数据2").Compute("sum(" & c & ")")
    ndr("小于负100") = (d1-d2) / d1
Next

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


加好友 发短信
等级:婴狐 帖子:76 积分:804 威望:0 精华:0 注册:2015/2/13 9:06:00
  发帖心情 Post By:2015/6/10 8:44:00 [只看该作者]

大红袍老师:

   感谢你的帮助!

   计算要求我没讲清楚。

   计算:

         1,计算每一个指标数值的变动率,("数据1"的每一个指标数值-相对应"数据2"的每一个指标数值)/"数据1"的每一个指标数值.

         2, 在"汇总"表分别统计"指标1", "指标2", "指标3"在各变动范围“小于负100”列(小于-1),“负100到0”列(-1-0),),“等于0”列    (0),),“0到100”列(0-1),),“大于100”列(大于1),的频次。

          是不是改  Dim d1 As Double = DataTables("数据1").Compute("sum(" & c & ")")
                       Dim d2 As Double =     DataTables("数据2").Compute("sum(" & c & ")")
                       ndr("小于负100") = (d1-d2) / d1

                       这3条代码?

 

[此贴子已经被作者于2015/6/10 8:45:56编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/10 9:12:00 [只看该作者]

Dim cs() As String = {"指标1", "指标2", "指标3"}
For Each c As String In cs
    Dim ndr As DataRow = DataTables("汇总").AddNew
    ndr("指标项") = c
    For i As Integer = 0 To Tables("数据1").Rows.Count - 1
        Dim r1 As Row = Tables("数据1").Rows(i)
        Dim r2 As Row = Tables("数据2").Rows(i)
        Dim result As Double = (r1(c)-r2(c)) / r1(c)
        If result < -1 Then
            ndr("小于负100") += 1
        ElseIf result < 0 Then
            ndr("负100到0") += 1
        ElseIf result = 0 Then
            ndr("等于0") += 1
        ElseIf result < 1 Then
            ndr("零到100") += 1
        ElseIf result = 1 Then
            ndr("等于100") += 1
        End If
    Next
Next

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


加好友 发短信
等级:婴狐 帖子:76 积分:804 威望:0 精华:0 注册:2015/2/13 9:06:00
  发帖心情 Post By:2015/6/11 16:56:00 [只看该作者]

 

Dim cs() As String = { "指标1", "指标2","指标3","指标4","指标5","指标6","指标7","指标8","指标9","指标10","指标11","指标12","指标13","指标14","指标15" ," 指标16","指标17","指标18","指标19" }

For Each c As String In cs

    Dim ndr As DataRow = DataTables("变动").AddNew

    ndr("指标") = c

    For i As Integer = 0 To Tables("变中").Rows.Count - 1

        Dim r1 As Row = Tables("变中").Rows(i)

        Dim r2 As Row = Tables("变后").Rows(i)

        Dim result As Double = (r2(c)-r1(c)) / r1(c)

        If result <= -1 Then

            ndr("小于负1") += 1

        ElseIf result < 0 And result > -1 Then

            ndr("负1到0") += 1

        ElseIf result = 0 Then

            ndr("等于0") += 1

        ElseIf result < 1 And result > 0Then

            ndr("从0到1") += 1

        ElseIf result >=1  Then

            ndr("大于1") += 1

        End If

    Next

Next

 

提示:索引 97 不是为负数,就是大于行数。

 

不知道哪里错了


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/11 16:59:00 [只看该作者]

这句代码有问题

 

 Dim r2 As Row = Tables("变后").Rows(i)

 

也就是说,你两个表的表的行数,没有匹配,也就是行数少了。


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


加好友 发短信
等级:婴狐 帖子:76 积分:804 威望:0 精华:0 注册:2015/2/13 9:06:00
  发帖心情 Post By:2015/6/11 17:10:00 [只看该作者]

通过了,谢谢大红袍老师的帮助

 回到顶部