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

时间:2017-10-31 10:57:21

标签: arrays excel indexing

我正在寻找一个fromula,它在数据透视表中获得第n个最大绝对值及其相关索引(在excel中)。当值为正时它很有效但当值为负时输出错误:" #N / A"。

这是我的pivot table

公式I使用:

Select a.a,b.a
From a left join b on a.a = b.a

当谈到第五大绝对值时,我应该得到以下输出:" AD" (对应于此值:-13.4%)但我得到:" #N / A. "

2 个答案:

答案 0 :(得分:2)

我更喜欢这样做,方法是列出前n个数值,然后选择相应的文字值,请参见屏幕截图示例:

enter image description here

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)

答案 1 :(得分:-1)

尝试此操作,以 Ctrl + Shift + 输入

作为数组公式输入
{=INDEX($I$24:$I$37,MATCH(lookupNthValue,RANK(ABS($J$24:$J$37),ABS($J$24:$J$37)),0)}

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