以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]条件表达式如何写? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=68954) |
-- 作者:sxy_123456 -- 发布时间:2015/5/28 10:05:00 -- [求助]条件表达式如何写? 有两个条件:1、计算相同的工程名称的数据 2、如果投标单位大于10个去掉两个最大值和最小值,如果投标单位大于7小于10个去掉一个最大值和最小值 3、计算平均值
[此贴子已经被作者于2015/5/28 10:06:16编辑过]
|
-- 作者:Bin -- 发布时间:2015/5/28 10:07:00 -- 要编写代码才可以实现.具体请上传例子 |
-- 作者:大红袍 -- 发布时间:2015/5/28 10:07:00 -- 需要结合 Select、Comput 等函数。
你上传具体例子吧,要怎么计算,计算结果放在哪里,都要说明 |
-- 作者:sxy_123456 -- 发布时间:2015/5/28 10:08:00 -- 已上传例子 |
-- 作者:大红袍 -- 发布时间:2015/5/28 10:18:00 -- For Each gcmc As String In DataTables("表A").GetValues("工程名称") Dim drs As List(Of DataRow) = DataTables("表A").Select("工程名称 = \'" & gcmc & "\'", "投标价格") Dim sum As Double = DataTables("表A").compute("sum(投标价格)", "工程名称 = \'" & gcmc & "\'") If drs.Count > 10 Then sum = (sum - (drs(0)("投标价格") + drs(1)("投标价格") + drs(drs.Count-1)("投标价格") + drs(drs.Count-1)("投标价格"))) / (drs.Count - 4) ElseIf drs.Count > 7 Then sum = (sum - (drs(0)("投标价格") + drs(drs.Count-1)("投标价格"))) / (drs.Count - 2) End If DataTables("表A").ReplaceFor("平均值", sum, "工程名称 = \'" & gcmc & "\'") Next |
-- 作者:sxy_123456 -- 发布时间:2015/5/28 10:59:00 -- 大于10个的计算结果不对啊? |
-- 作者:大红袍 -- 发布时间:2015/5/28 11:01:00 -- sum = (sum - (drs(0)("投标价格") + drs(1)("投标价格") + drs(drs.Count-1)("投标价格") + drs(drs.Count-1)("投标价格"))) / (drs.Count - 4) 改成
sum = (sum - (drs(0)("投标价格") + drs(1)("投标价格") + drs(drs.Count-1)("投标价格") + drs(drs.Count-2)("投标价格"))) / (drs.Count - 4)
你要看得懂代码,不然没进步啊 |
-- 作者:sxy_123456 -- 发布时间:2015/5/28 11:02:00 -- 说的对,谢谢 |