免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3823 | 回复: 1

请帮弄条公式,EXCEL 感激! [复制链接]

论坛徽章:
0
发表于 2009-07-28 11:45 |显示全部楼层
请帮弄条公式,EXCEL 感激!
假设有三个值A1=35,B1=36 ,C1=37求其平均值 条件如下:


1、精确到0.1。
2、三个值的最大值或最小值中的一个与中间值的差值超过15%那么舍去最大值和最小值取中间值。
3、三个值的最大值和最小值与中间值的差值都超过15%那么该数组无效返回空白。 XCEL 感激!

论坛徽章:
0
发表于 2010-03-07 19:01 |显示全部楼层
插入一个模块,粘贴上这个函数,然后直接在表格里使用函数就可以了:
  1. Public Function xxx1(rng As Range)
  2. Dim d1 As Object, a#, b#, result#
  3. Set d1 = CreateObject("Scripting.dictionary")
  4. For Each i In rng
  5.     If Not d1.exists(Application.Rank(i, rng, 0)) Then _
  6.                 d1.Add Application.Rank(i, rng, 0), i
  7. Next i
  8. a = Abs((d1(1) - d1(2))) / d1(2): b = Abs((d1(3) - d1(2))) / d1(2) '未明白“超过15%”是指什么,请自行在这里定义
  9. If (a > 0.15 And b <= 0.15) Or (b > 0.15 And a <= 0.15) Then
  10.                                         result = Application.Round(d1(2), 1)
  11.     ElseIf (a > 0.15 And b > 0.15) Then
  12.                                         result = 0
  13. End If
  14. Set d1 = Nothing
  15. xxx1 = result
  16. End Function
复制代码
精确度自行设置单元格格式就可以了

请参考
~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP