我正在尝试根据blocksize条件进行排名,我不希望它将所有内容排在其他所有内容之外,只是匹配匹配的块。
例如:
A B C D
**Server Block Size Score Rank**
SRV1 4k 200 2
SRV1 4k 200 2
SRV1 8k 100 5
SRV1 8k 120 4
SRV2 4k 180 3
SRV2 4k 130 5
SRV2 8k 200 3
SRV3 4k 140 4
SRV3 4k 220 1
SRV3 8k 300 2
SRV3 8k 500 1
我已经尝试过COUNTIF函数和SMALL函数,似乎什么也没做我想要的。
答案 0 :(得分:2)
RANK function对通常用于将标准应用于标准函数的标准数组公式排除方法反应不佳。
基本上,RANK可以表示为COUNTIF function,如=COUNTIF(A:A, ">"&A1)+1
。通过更改为COUNTIFS function可以轻松添加其他条件。
D2中的公式是,
=COUNTIFS(B$2:B$12, B2, C$2:C$12, ">"&C2)+1
根据需要填写。
这些结果与您的样本的不同之处在于SRV2,4k,180由于重复的SRV1,4k,200值而排名为4 th 而不是3 rd 。
但是,如果要从排名索引中打印重复项,则必须根据重复项之后的任何值调整重复项,以便人为地提高其RANK编号。
D2中的公式现在有点复杂了,
=SUMPRODUCT(((B$2:B$12=B2)*(C$2:C$12>=C2))/(COUNTIFS(B$2:B$12, B2, C$2:C$12, C$2:C$12&"")+(B$2:B$12<>B2)))
根据需要填写。请注意,SRV2,4k,180的调整后排名现在为3 rd 。