获取数组中的第n个绝对值

我正在寻找一个在数据透视表和相关索引(在Excel中)中获得第n个最大绝对值的fromula。 当值为正数时,它运作良好,但当值为负时,输出错误:“#N / A”。

这是我的数据透视表

我正在使用的公式:

{=INDEX($I$24:$I$37,MATCH(1,INDEX(($J$24:$J$37=LARGE(ABS($J$24:$J$37),ROWS(I$42:I42)))*(COUNTIF(I$42:I42,$I$24:$I$37)=0),),0))]} 

当到达第五大绝对值时,我应该得到如下输出:“AD”(对应于这个值:-13.4%),而是得到:“#N / A”。

我更喜欢通过列出前n个数字值然后select相应的文本值来实现,请参阅截图示例:

在这里输入图像说明

D2中的公式是:

=INDEX(A$2:A$10,SMALL(IF(ABS(A$2:A$10)=LARGE(ABS(A$2:A$10),ROWS(D$2:D2)),ROW(A$2:A$10)-ROW(A$2)+1),1+SUM(COUNTIF(D$1:D1,LARGE(ABS(A$2:A$10),ROWS(D$2:D2))*{1,-1}))))

E2中的公式是:

=INDEX(B$2:B$10,SMALL(IF(ABS(A$2:A$10)=ABS(D2),ROW(A$2:A$10)-ROW($A$2)+1),SUM(0+(ABS(D$2:D2)=ABS(D2)))))

两者都需要按CTRL + SHIFT + ENTER确认,并根据需要复制下来。

当有关系时,如同例子中的-4和4那样,它们按照它们出现的顺序列出,因此-4(A)被列出,然后是4(E),然后是-4(J)

试试这个,用Ctrl + Shift + Enter作为数组公式input

 {=INDEX($I$24:$I$37,MATCH(lookupNthValue,RANK(ABS($J$24:$J$37),ABS($J$24:$J$37)),0)} 

一旦你解决了你想要处理的关系,我会编辑。