SUM(IF(H$4:H$18>H4,1/COUNTIF(H$4:H$18,H$4:H$18)))+1 谁能帮我解释下这个数组公式的含义啊

如题所述

拆开理解公式,思路很好。首先countif的意思是数一下数据区中参数的个数,此处返回去包括十五个数的数组,分别是H4到H18各数在H4:H18中重复次数。再看IF公式,此处返回15个值,由其第一个参数的真假值(15个,由H4到H18分别和H4比较决定)决定,如果真返回countif返回值的倒数,假返回false,最后用sum函数求这十五个值的和,再加1。
公式的含义就是排序,H4到H18中最大值得出1,但是重复的数的序号是一样的,并且序号为连续自然数且不跳跃。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-22
应该是在H4:H18区域中,不低于当前单元格(H4)分数值的不重复的分数值数量(即重复值只统计一次)追问

能不能解释详尽一点,我为了理解这个公式,把它拆分成了三个
一个是=H$4:H$18;一个是=1/COUNTIF(H$4:H$18,H$4:H$18);还有一个是=sum(1/COUNTIF(H$4:H$18,H$4:H$18)),发现拆出来是有问题的,看不懂什么意思

追答

这是一个数组公式:H4:H18区域数据依次与H4比较,如果某值(如H5)大于H4,就统计H4:H18中等于该值(H5)的数量(因为有可能有其他值等于H5的值,如H11和H12相等),将获得的数量值取倒数(不重复的时候,如H5,数量为1,倒数也是1;但H11和H12都是93.2,所以H11的数量为2,倒数为0.5,H12类似,倒数也是0.5,两个0.5相加也是1),这样可以获得所以大于H4的分数值的个数(重复的计算一次),公式后面有“+1”,那么表示的是公式的得数至少是1,也就是等于H4的值也包含在内。
所以函数的意思是:在H4:H18区域中,不低于当前单元格(H4)分数值的不重复的分数值数量(即重复值只统计一次)

追问

按照这样的理解,我觉得
IF(H$4:H$18>H4,1/COUNTIF(H$4:H$18,H$4:H$18))
这个得出的值不是1就是2啊,为什么用了sum数组公式之后,出来的就是排列顺序了啊

本回答被网友采纳