获得跨列的最高值

我有一个名单和金额colums的工作表。 名称在(C2:C33,J2:J33,Q2:Q33,X2:X33)(G2:G33,N2:N33,U2:U33,AB2:AB33)

我想要做的是find最高的8个金额,与相应的名称。 含义,例如 – C3的名称对应于G3的数量, J3的名称对应于N3的数量等。

使用:

 =LARGE((G2:G33,N2:N33,U2:U33,AB2:AB33),1) 

我能够find前8个值(通过更改1到2,3,4等)。 我不知道如何“带”这个名字,所以我一直在寻找。 我find了一个解释,给了我这个:

 =INDEX($C$2:$C$33,MATCH(1,INDEX(($G$2:$G$33=LARGE($G$2:$G$33,ROWS(N$36:N36)))*(COUNTIF(N$36:N36,$C$2:$C$33)=0),),0)) 

复制下来的8个单元格会给我最高的8个组合的名称,但只能从列C的第一个分组中使用列G值。

过去几周我一直在寻找如何做到这一点,而我已经没有想法了。 我不知道我是否可以修改第一个公式来获取名字,或者第二个公式是否可以通过其他3个相应的组。 一旦我在第一张纸上获得前8位的名字和金额,我需要将这些与前100名以上的其他8张进行比较,以获得前8名。

这是否有道理,甚至有可能? 我需要使用VBA吗? 我正在运行Excel 2010,但是我不知道解决scheme是否是特定于版本的。 千万,如果有人能为我画出这一个!

不完全确定你在问什么,但是这里有一组正常的excel代码,它将为你提供最高值的第一个实例,并返回相应的单元格。

 =INDEX(C2:C33,MATCH(MAX(G2:G33),G2:G33,0),1) 

如果你要求那个列中的8个最高值,你可以使用

 =INDEX(C2:C33,MATCH(LARGE(G2:G33,[replace with 1-8]),G2:G33,0),1) 

编辑:当然,如果有两个具有相同值的数字,它将不起作用。 在这种情况下,我将使用VBA,将数字拉到二维数组中,并根据列G中的值对数组重新sorting。