使用自动过滤器重新计算独特的排名?

时间:2014-05-23 13:22:08

标签: excel excel-formula

因为我有很多项目排名为1(或100%),所以我使用此公式获得一个独特的排名,如下图所示,在“过滤的唯一排名”下:

=RANK(A2,$A$2:$A$1000)+COUNTIF($A$2:A2,A2)-1

这是我在“常规排名”下的旧排名公式,基本上显示很多项目排名为1:

=RANK(A2,$A$2:$A$1000)

enter image description here

这是我用来根据过滤器获得排名的公式,但它不是唯一的:

=SUMPRODUCT(SUBTOTAL(3,OFFSET($A$2:$A$1000,ROW($A$2:$A$1000)-MIN(ROW($A$2:$A$1000)),0,1)),--(A2<$A$2:$A$1000))+1

问题:根据上面的信息,有没有办法从自动过滤器获得唯一的排名? 上述公式的来源:http://www.mrexcel.com/td0067.html

3 个答案:

答案 0 :(得分:2)

说数据如下:

unfiltered

B 填充了“标准”唯一顺序排名的公式,因此 B2 包含:

=RANK(A2,$A$2:$A$10)+COUNTIF($A$2:A2,A2)-1

D2 中输入:

=IF(SUBTOTAL(3,$B2:$B2)=0,"",A2)

并复制下来。帮助 D 列类似于 A 列,除非该行被隐藏,该值为空。在 E2 中输入:

=RANK(D2,$D$2:$D$10)+COUNTIF($D$2:D2,D2)-1

并复制下来。

以下是应用过滤器的快照:

filterapplied

注意列 E 会产生一个简单,独特的顺序排名。

答案 1 :(得分:1)

试试这个数组公式**

= INDEX(FREQUENCY(IF(小计(3,OFFSET($ A $ 2,ROW($ A $ 2:$ 10 $)-MIN(ROW($ A $ 2:$ A $ 10)),,,)), $ A $ 2:$ A $ 10),A2),2)+ INDEX(FREQUENCY(IF(小计(3,OFFSET($ A $ 2,ROW($ A $ 2:A2)-MIN(ROW($ A $ 2:A2) ),,,)),$ A $ 2:A2),A2- {0.00001,0}),2)

此致

**数组公式的输入方式与&#39;标准&#39;相同。公式。您只需按住CTRL和SHIFT键,然后按ENTER键,而不是按ENTER键。如果您已正确完成,您会注意到Excel在公式周围放置了大括号{}(尽管不要尝试自己手动插入这些括号)。

答案 2 :(得分:0)

不,您无法使用自动过滤器更改传递给公式的值。该公式仍将引用相同的计数和值,无论它们是否隐藏。

但是,您可以使用数据透视表过滤器来实现此目的,因为它们通过更改值来呈现单元格的内容。