以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]Aggregate(AggregateEnum.Average, x1, r, 18, r)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=134242)

--  作者:cqlpjks
--  发布时间:2019/4/30 17:18:00
--  [求助]Aggregate(AggregateEnum.Average, x1, r, 18, r)

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:理数小题分分析表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)


--  作者:有点甜
--  发布时间:2019/4/30 17:27:00
--  

 

请用compute比较,如

 

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

 

 

 


--  作者:cqlpjks
--  发布时间: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


--  作者:有点蓝
--  发布时间: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
--  发布时间: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编辑过]

--  作者:有点甜
--  发布时间:2019/5/4 10:45:00
--  

参考

 

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