SUMPRODUCT((B$1:B$100>B1)*(1/COUNTIF($B$1:$B$100,$B$1:$B$100)))+1 这个公式是什么意思阿

请详细讲解一下,实在是看不懂,很各应人

第1个回答  2011-12-21
是求中国式排名的公式,如数据为99,98,98,97,排名分别为1,2,2,3
COUNTIF($B$1:$B$100,$B$1:$B$100)的意思是求B1:B100中每个数据有几个,解释比较麻烦,你可以在公式中用鼠标拖黑,按下F9查看,再按CTRL+Z返回,也可以按ESC返回,再拖黑其它的,按F9,想看哪段拖黑哪段,仔细体会一下,应该会理解的。
这个公式不错,弄明白后水平会有提高的。追问

B$1:B$100>B1 是什么意思,应该还是一个数组吧,谢谢了

追答

B$1:B$100>B1 结果是一个数组,返回一个由TRUE和FALSE组成的一维列相量。

追问

成绩 排名
99 1
98 2
98 2
97 3
你就按这个例子给我解释一下吧, 分可以加 十分感谢

追答

如果是四个,那么公式就是
=SUMPRODUCT((B$1:B$4>B1)*(1/COUNTIF($B$1:$B$4,$B$1:$B$4)))+1
其中B$1:B$4>B1的意思是每个数字比B1大是否为真,中间过程就是{99;98;98;97}>99,然后{FALSE;FALSE;FALSE;FALSE},这个先放一边,后面的COUNTIF($B$1:$B$4,$B$1:$B$4),就是B1:B4中每个数字条件计数,就是99有几个,98有几个,98有几个,97有几个,中间过程是{1;2;2;1},用1除以它们,结果为{1;0.5;0.5;1},如果把它们直接求和,就可以求出不重复的个数,就是几种数字,这里还要和前面的那四个FALSE相乘,FALSE参与四则运算时,被当作0,所以,{FALSE;FALSE;FALSE;FALSE}*{1;0.5;0.5;1}的结果应为{0;0;0;0},外面套上SUM,得出来是0,再加上 1,就是第一名,这个公式下拉到第二行,参与的B1就变成B2了,就是用98来参与比较,中间最后会产生{TRUE;FALSE;FALSE;FALSE}*{1;0.5;0.5;1},再到{1;0;0;0},求和变成1,加上1变成2,就是第二名,下拉到第三行时,也用第三个98参与,下拉到第四行时,用97参与,结果变成{TRUE;TRUE;TRUE;FALSE}*{1;0.5;0.5;1},再{1;0.5;0.5;0},再2,加1为3,这样讲清楚了吗?
其实我已经讲过了,就是用鼠标拖黑上面这些部分,按F9,就会看到拖黑部分结果,按CTRL+Z,或ESC键返回,反复试几次,想看哪段就拖黑哪段,慢慢就明白了。

第2个回答  2011-12-21
B1到B100中,大于等于B1不重复的个数,也就是所谓中国式的排名
公式可简化下,改为
=SUMPRODUCT((B$1:B$100>=B1)/COUNTIF($B$1:$B$100,$B$1:$B$100))本回答被提问者采纳
第3个回答  2011-12-21
可以判断B1在该列中排第几(从大到小排);
如果B1是字母,其他是数字,则排第1;
如果B1是字母,其他也有字母,按z-a倒序排列大小;

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网