以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何设置复杂的表达式  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=88281)

--  作者:phhd
--  发布时间:2016/7/30 16:40:00
--  如何设置复杂的表达式
样品编号 测量序号 测量值 平均值
AA01 1 20.5 21.2
2 22
3 18.9
4 21
5 19
AA02 1 15 15.3
2 16
3 13
4 18
5 15

如上表,平均值列的计算方法是:同一个样品编号的5次测量结果,去掉一个最高值、去掉一个最低值,剩下的三个值取平均,需要自动实现。用什么办法实现最好呢?

谢谢老师!


--  作者:Hyphen
--  发布时间:2016/7/30 17:20:00
--  
只能用代码做,找出样品对应的行,逐个比较排除最高和最低,剩下的进行计算平均值


--  作者:cbt
--  发布时间:2016/7/30 17:52:00
--  
Dim strs As List(of String) = CurrentTable.DataTable.GetValues("样品编号")
For Each str As String In strs
    Dim drs As List(of DataRow) = CurrentTable.DataTable.Select("样品编号=\'" & str & "\'","测量值 desc")
    Dim 平均值 As Double = ( drs(1)("测量值") + drs(2)("测量值") + drs(3)("测量值") ) /3
    Dim dd  As List(of DataRow) = CurrentTable.DataTable.Select("样品编号=\'" & str & "\'","_sortkey")
    dd(2)("平均值") = 平均值
Next

--  作者:phhd
--  发布时间:2016/8/2 15:22:00
--  
谢谢老师!