LOOKUP 函数给出奇怪的结果

LOOKUP function giving strange result

在 Excel 中使用 LOOKUP 我想显示得分最高的单元格,但结果很奇怪。

Example: my Excel table:

据此 table 我想确定谁获得了最高分,我使用此代码:

for biggest score no 1 "=LOOKUP(MAX(C4:C8),C4:C8,B4:B8)"
for biggest score no 2 "=LOOKUP(LARGE(C4:C8,2),C4:C8,B4:B8)"
for biggest score no 3 "=LOOKUP(LARGE(C4:C8,3),C4:C8,B4:B8) "

结果很奇怪:

for biggest score no 1 it show "mordi"
for biggest score no 2 it show "mordi"
for biggest score no 3 it show "ngun"

任何人都可以纠正我,我是否使用了错误的功能?

为了使用查找功能,table中的数据必须排序。要简单地找到值 (->max(C4:C8)) 的第一次出现,请使用匹配函数和 select 适当的值,如下所示:

=INDIRECT("B" & MATCH(MAX(C4:C8),C4:C8,0))

您的第一个公式所做的是在 C4:C8 中查找 5,然后在未按升序排列的列表中查找 5。搜索是二进制的 - 实际上它比较 5 和中点 3 所以然后忘记 54 因为它期望 5after 3 因此仅在范围的后半部分继续搜索(再次将其一分为二)。它没有在那里找到它,所以默认(也许不是真的故意)到最后一个条目(即 1)然后 returns 在 B 列中的相应值。

我建议为所有三个 'ranks' 使用一个公式,在公式外指定 'rank',例如 G4 中的 1,G5 中的 23 在 G6 中。然后申请:

=INDEX(B:B,MATCH(LARGE(C:C,G4),C:C,0))

这应该 return johan 复制下来时 aan 然后 ngun

它像您一样使用 LARGE,但在 MATCH 函数内查找所需分数在 ColumnC 中的相对位置,然后 returns 在 ColumnB 中的范围内的相同相对位置的内容.

VLOOKUP 不适合,因为结果在 table_array 的左边。

如果分数不是 'ranks' 相反的,可能更容易看出发生了什么。