EXCEL求指定条件的排名

如果C5对应E5是B,求C5在C列(剔除S和空的值)中的排名;如果C5对应E5是S,求C5在C列(剔除B和空的值)中的排名,如果C5对应E5是空,求C5在C列(剔除B和S的值)中的排名,假如B对应的有两个相同值出现,会出现一前一后的排名,不会出现排名是一样的

=IF(C5="","",MATCH(C5,LARGE(($D$5:$D$1000=D5)*$C$5:$C$1000,ROW($1:$996)),)+COUNTIFS($C$4:C4,C5,$D$4:D4,IF(D5="","",D5)))

ctrl+shift+回车下拉

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-04-20

F5输入

=SUMPRODUCT((E$5:E$27=E5)*(C$5:C$27>=C5))

回车并向下填充。

追问

你好!可以解释一下公式的含义吗

追答

=SUMPRODUCT((E$5:E$27=E5)*(C$5:C$27>=C5))——乘积和函数,用统计个数法求排名。
1、(E$5:E$27=E5)——符合E列指定值。
2、(C$5:C$27>=C5)——符合大于等于指定值:
如A1=3、A2=1、A3=4、A4=2
(A$1:A$4>=A1)——A1和A3两个,得数=2,即A1为第2名;
(A$1:A$4>=A2)——A1~A4四个都是,得数=4,即A2为第4名。

追问

如果B的值有两个相同的,排名也一样,我想要的效果是如果值相同,排名一前一后,请问公式可以怎么改进?

追答

遗憾!很难实现。

本回答被网友采纳
第2个回答  2019-04-20

F5=IF(C5&E5="","",SUMPRODUCT(($E$5:$E$1000=E5)*($C$5:$C$1000>C5))+1)

下拉公式。

相似回答