在excel中返回大值的行标签

时间:2014-11-16 21:57:19

标签: excel indexing match

我在excel

中遇到此问题
=INDEX(A2:A41;MATCH(LARGE(M2:M41;1);M2:M41;0))

数据:

A          M 
name1      0,55
name2      2.01
name3      10.00
name4      2.01
name5      5.00

公式:

=INDEX(A2:A41;MATCH(LARGE(M2:M41;1);M2:M41;0))
=INDEX(A2:A41;MATCH(LARGE(M2:M41;2);M2:M41;0))
=INDEX(A2:A41;MATCH(LARGE(M2:M41;3);M2:M41;0))
=INDEX(A2:A41;MATCH(LARGE(M2:M41;4);M2:M41;0))
=INDEX(A2:A41;MATCH(LARGE(M2:M41;5);M2:M41;0))

这些命令将返回:

TOP 5 Values:
name5 
name3
**name2**
**name2**
name1

问题是如果两个值相同,那么p.ex. name2 = name4 = 2.01,“name2”出现两次,“name4”无。

我试图让它返回:

name5 
name3
**name2**
**name4**
name1

或者这个:

name5 
name3
**name4**
**name2**
name1

订单无关紧要

编辑1
同样的问题.. 这个公式:

=INDEX($A$2:$A$41;SMALL(INDEX(ROW($1:$40)+($M$2:$M$41<>LARGE($M$2:$M$41;ROW(1:1)))*1E+99;;);COUNTIF($M$2:$M2;$M2)))
=INDEX($A$2:$A$41;SMALL(INDEX(ROW($1:$40)+($M$2:$M$41<>LARGE($M$2:$M$41;ROW(2:2)))*1E+99;;);COUNTIF($M$3:$M3;$M3)))
=INDEX($A$2:$A$41;SMALL(INDEX(ROW($1:$40)+($M$2:$M$41<>LARGE($M$2:$M$41;ROW(3:3)))*1E+99;;);COUNTIF($M$4:$M4;$M4)))
=INDEX($A$2:$A$41;SMALL(INDEX(ROW($1:$40)+($M$2:$M$41<>LARGE($M$2:$M$41;ROW(4:4)))*1E+99;;);COUNTIF($M$5:$M5;$M5)))
=INDEX($A$2:$A$41;SMALL(INDEX(ROW($1:$40)+($M$2:$M$41<>LARGE($M$2:$M$41;ROW(5:5)))*1E+99;;);COUNTIF($M$6:$M6;$M6)))

返回与此相同的结果:

=INDEX(A2:A41;MATCH(LARGE(M2:M41;1);M2:M41;0))
=INDEX(A2:A41;MATCH(LARGE(M2:M41;2);M2:M41;0))
=INDEX(A2:A41;MATCH(LARGE(M2:M41;3);M2:M41;0))
=INDEX(A2:A41;MATCH(LARGE(M2:M41;4);M2:M41;0))
=INDEX(A2:A41;MATCH(LARGE(M2:M41;5);M2:M41;0))

如果M列上有两个相同的值,“name2”会出现两次,而另一个则不会出现......

编辑2
我只想要列M的TOP 5值,并返回它们的行:

TOP 5

name5 
name3
name2
name4
name1

是不是有任何简单的命令可以将列M从最高值重新排列到最低值?并返回行名,而不是数字。


同样的问题.. 这个公式:

=INDEX($A$2:$A$41;SMALL(INDEX(ROW($1:$40)+($M$2:$M$41<>LARGE($M$2:$M$41;ROW(1:1)))*1E+99;;);COUNTIF($M$2:$M2;$M2)))
=INDEX($A$2:$A$41;SMALL(INDEX(ROW($1:$40)+($M$2:$M$41<>LARGE($M$2:$M$41;ROW(2:2)))*1E+99;;);COUNTIF($M$3:$M3;$M3)))
=INDEX($A$2:$A$41;SMALL(INDEX(ROW($1:$40)+($M$2:$M$41<>LARGE($M$2:$M$41;ROW(3:3)))*1E+99;;);COUNTIF($M$4:$M4;$M4)))
=INDEX($A$2:$A$41;SMALL(INDEX(ROW($1:$40)+($M$2:$M$41<>LARGE($M$2:$M$41;ROW(4:4)))*1E+99;;);COUNTIF($M$5:$M5;$M5)))
=INDEX($A$2:$A$41;SMALL(INDEX(ROW($1:$40)+($M$2:$M$41<>LARGE($M$2:$M$41;ROW(5:5)))*1E+99;;);COUNTIF($M$6:$M6;$M6)))

返回与此相同的结果:

=INDEX(A2:A41;MATCH(LARGE(M2:M41;1);M2:M41;0))
=INDEX(A2:A41;MATCH(LARGE(M2:M41;2);M2:M41;0))
=INDEX(A2:A41;MATCH(LARGE(M2:M41;3);M2:M41;0))
=INDEX(A2:A41;MATCH(LARGE(M2:M41;4);M2:M41;0))
=INDEX(A2:A41;MATCH(LARGE(M2:M41;5);M2:M41;0))

如果M列上有两个相同的值,“name2”会出现两次,另一个则根本不出现...... 我做错了什么?

1 个答案:

答案 0 :(得分:0)

可能在管道的某处提供了一个数组公式,但这是一个标准公式解决方案。

second LARGE value

O2中的公式是,

=INDEX($A$2:$A$41,SMALL(INDEX(ROW($1:$40)+($M$2:$M$41<>LARGE($M$2:$M$41,ROW(1:1)))*1E+99,,),COUNTIF($M$2:$M2,$M2)))

根据需要填写。