以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]如何做统计表 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=69693) |
||||
-- 作者:青岛hhh -- 发布时间:2015/6/9 14:58:00 -- [求助]如何做统计表 各位老师: 做了个统计表
不知道该怎样实现,请老师指教: 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”列,等各列。 . . . . |
||||
-- 作者:大红袍 -- 发布时间: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 -- 发布时间: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 & ")") 这3条代码?
[此贴子已经被作者于2015/6/10 8:45:56编辑过]
|
||||
-- 作者:大红袍 -- 发布时间: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 -- 发布时间: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 不是为负数,就是大于行数。
不知道哪里错了 |
||||
-- 作者:大红袍 -- 发布时间:2015/6/11 16:59:00 -- 这句代码有问题
Dim r2 As Row = Tables("变后").Rows(i)
也就是说,你两个表的表的行数,没有匹配,也就是行数少了。 |
||||
-- 作者:青岛hhh -- 发布时间:2015/6/11 17:10:00 -- 通过了,谢谢大红袍老师的帮助 |