Foxtable(狐表)用户栏目专家坐堂 → [求助]Aggregate(AggregateEnum.Average, x1, r, 18, r)


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

主题:[求助]Aggregate(AggregateEnum.Average, x1, r, 18, r)

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


加好友 发短信
等级:一尾狐 帖子:407 积分:3194 威望:0 精华:0 注册:2011/2/28 11:57:00
[求助]Aggregate(AggregateEnum.Average, x1, r, 18, r)  发帖心情 Post By:2019/4/30 17:18:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:理数小题分分析表2.xls

统计此表中列“难度”、“区分度”:卷二 = 主观题平均分(序号13-19)   理数 = 主、客观题的平均分(序号1-19)

代码:

卷二:

dr("难度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 12, r, 18, r)
dr("区分度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 12, q, 18, q)

理数:

dr("难度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 0, r, 18, r)
dr("区分度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 0, q, 18, q)

执行结果有误,怎么修改代码?请指教。谢谢!

 

卷一统计没问题:

dr("难度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 0, r, 11, r)
dr("区分度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 0, q, 11, q)


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


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

 

请用compute比较,如

 

Tables(Km & "小题分析").compute("avg(题号)", "题号>=13 and 题号<=19")

 

 

 


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


加好友 发短信
等级:一尾狐 帖子:407 积分:3194 威望:0 精华:0 注册:2011/2/28 11:57:00
  发帖心情 Post By:2019/4/30 21:56:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:成绩统计小题分分析.rar

已经修改了,还是不对,不知原因出在哪里?请指教!谢谢!

ElseIf dr("题号") = "卷二" Then
    If dr("题型").Contains("选做") Then
        dr("难度") = Tables(Km & "小题分析").compute("Avg(难度)", "序号 >= 13 and 序号<= 19")
        dr("区分度") = Tables(Km & "小题分析").compute("Avg(区分度)", "序号 > 13 and 序号<= 19")

    Else
        dr("难度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, x1, r, x2-1, r)
        dr("区分度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, x1, q, x2-1, q)
    End If
ElseIf dr("题号") = Km  Then
    If dr("题型").Contains("选做") Then
        dr("难度") = Tables(Km & "小题分析").compute("Avg(难度)", "序号>= 1 and 序号<= 19")
        dr("区分度") = Tables(Km & "小题分析").compute("Avg(区分度)", "序号>= 1 and 序号<= 19")

    Else
        dr("难度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 0, r, x2-1, r)
        dr("区分度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 0, q, x2-1, q)
        dr("X1") = X1
        dr("X2") = X2
        dr("X10") = x10
        dr("非选尾号") = x2-1-x10
    End If
End If


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106046 积分:539323 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/4/30 22:52:00 [只看该作者]

ElseIf dr("题号") = "卷二" Then
        dr("难度") = Tables(Km & "小题分析").compute("Avg(难度)", "序号 >= 13 and 序号<= 19")
        dr("区分度") = Tables(Km & "小题分析").compute("Avg(区分度)", "序号 > 13 and 序号<= 19")

ElseIf dr("题号") = Km  Then
        dr("难度") = Tables(Km & "小题分析").compute("Avg(难度)", "序号>= 1 and 序号<= 19")
        dr("区分度") = Tables(Km & "小题分析").compute("Avg(区分度)", "序号>= 1 and 序号<= 19")

End If



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


加好友 发短信
等级:一尾狐 帖子:407 积分:3194 威望:0 精华:0 注册:2011/2/28 11:57:00
  发帖心情 Post By:2019/5/1 21:14:00 [只看该作者]

直接用这个公式的条件是:1、卷二中没有选做题,2、知道序号(固定区域)。但如果有选做题并且序号不固定就不得行了。

 

麻烦再请教一下: 代码Dim x2 As Double = DataTables(Km & "小题分析").Compute("Max(序号)","类型 = '主观题'")

是取“类型”为“主观题”序号的最大值。

如果我要取“类型”为“主观题”,并且“题型”中不含“选做”字符的序号的最大值,如何修改代码?请指教。谢谢!

 


图片点击可在新窗口打开查看此主题相关图片如下:理数.jpg
图片点击可在新窗口打开查看
上面的x2=21,我要取的结果应为19.
[此贴子已经被作者于2019/5/1 21:14:56编辑过]

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


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

参考

 

Dim x2 As Double = DataTables(Km & "小题分析").Compute("Max(序号)", "类型 = '主观题' and 题型 not Like '%选做%'")

 

 

 

 


 回到顶部