Excel: Rank.AVG 和 IF/CASE 语句

Excel: Rank.AVG With IF/CASE Statement

我在 Excel 中有一个数据集,如下所示:

A     B    
8    10
9     8
9     8
0     3
0     3
0     3
0     3

我想使用 RANK.AVG 函数,它只从 B 列中的值中获取排名,而 A 列中的值不等于 0。

对于上下文,此数据集的行数会因月份而异,在这种情况下,我不想每次都修改公式以仅调整 2 行。

当前输出如下所示:

=IFERROR(RANK.AVG(B2,$B:$B,1),0)

A     B    C
8    10    7
9     8  5.5
9     8  5.5
0     3  2.5
0     3  2.5
0     3  2.5
0     3  2.5

所需的输出(目前为手动)如下所示:

=IFERROR(RANK.AVG(B2,$B:$B,1),0)

A     B    C
8    10    3
9     8  1.5
9     8  1.5  
0     3    0
0     3    0
0     3    0
0     3    0

是否有一个函数可以解决这个问题,我可以在其中执行类似 rank.avg.ifs 类似于 sumifs 的操作?假设我可以使用 sumproduct 函数,但在 rank avg.

这样的地方看不到它

如果您有能力添加辅助列,那么您可以使用以下公式:

对于 RANK - =COUNTIFS(A2:$A;">0";B2:$B;"<="&B2)

对于 RANK.AVG - =AVERAGEIF($B:$B;B2;$D:$D)