`
阅: 2174 | 回: 0
发表于2015/10/24 15:36:20 楼主 
头像 等级:初学者
积分:0
财富值:0.0
身份:普通用户

对多个相同数值返回平均排位的公式

在Excel中对区域中的数值进行排位时要用到RANK函数,RANK函数对于并列排位的处理方法是取其最小位次。例如对于一列数值“9,2,1,2,6,2,7,3,7”中有两个“7”,按照从大到小的顺序排位时这两个数都返回“2”,即并列第二位,同时第三大的数字“6”返回“4”。有时可能不需要对多个相同数值进行这样的排位,而是要取其平均排位。例如上列数值中的“7”所占的位次为“2”和“3”(因为比“7”小的最大数“6”的位次为“4”),取其平均值为“(2+3)/2=2.5”,即两个相同的数值“7”的排位都为“2.5”。又如该数列中包含3个“2”,其所占的位次为“6”、“7”和“8”,则数值“2”的排位为“(6+7+8)/3=7”。要实现这样的排位,可以用下面的一些公式,假如上列数值在A2:A10区域中。

方法一:添加修正因素

    按从大到小的顺序排位时,在B2单元格中输入公式,然后向下拖动填充柄填充公式:

    =RANK(A2,$A$2:$A$10)+(COUNT($A$2:$A$10)+1-RANK($A2,$A$2:$A$10,0)-RANK($A2,$A$2:$A$10,1))/2

    如果按照从小到大的顺序排位,则上述公式改为:

    =RANK(A2,$A$2:$A$10,1)+(COUNT($A$2:$A$10)+1-RANK($A2,$A$2:$A$10,0)-RANK($A2,$A$2:$A$10,1))/2

    其中公式的后面部分:

    (COUNT($A$2:$A$10)+1-RANK($A2,$A$2:$A$10,0)-RANK($A2,$A$2:$A$10,1))/2

    即为修正因素。无论是按从大到小的顺序排位还是按从小到大的顺序排位,都无需修改该修正因素。

    方法二:数组公式

    按从大到小的顺序排位时,在C2单元格中输入数组公式:

    =SUM(--(A2<=$A$2:$A$10))-(SUM(--(A2=$A$2:$A$10))-1)/2

    按从小到大的顺序排位时,则上述公式改为:

    =SUM(--(A2>=$A$2:$A$10))-(SUM(--(A2=$A$2:$A$10))-1)/2

    上述两个公式为数组公式,公式输入完毕后按Ctrl+Shift+Enter结束。

    方法三:RANK.AVG函数

    RANK.AVG函数是Excel 2010中新增的排位函数,用该函数可以对多个相同数值返回其平均排位。在Excel 2010中与早期版本中的RANK函数等价的是RANK.EQ函数,而RANK函数则被归入到兼容性函数类别,保留该函数是为了保持与Excel早期版本的兼容性。

    RANK.AVG函数的语法与RANK函数类似,按从大到小的顺序(降序)排位时,在D2单元格中输入公式:

    =RANK.AVG(A2,$A$2:$A$10,0)

    其最后的参数“0”可省略。

    按从小到大的顺序(升序)排位时,则上述公式改为:

    =RANK.AVG(A2,$A$2:$A$10,1)

我的个性签名

快速回复

目前不允许游客发表,请 登录 注册 后再发贴。