我是一名老师,我的班级进行了一次测试。我对他们在每个问题上的表现进行了一些分析。我想查找 B 列(最佳问题)中的最大值并返回该值对应的问题编号(A 列)。
效果很好。
然后我尝试同样的方式,但是为了找到最糟糕的问题,我得到的答案是 #N/A。我不太明白为什么。
数据如下:
A B
1 Q Score
2 1 1.13
3 2 1.13
4 3 -0.94
5 4 -1.29
6 5 -1.34
7 6 -0.67
8 7 0.11
9 8 0.91
10 9a -0.88
11 9b -1
12 10ab 0.93
13 10c -1.21
14 11 -1
15 12 0.88
16 13 -0.83
17 14 0.94
18 15 -0.88
19 16 -0.13
20 17 0.72
21 18 -0.85
22 19 0.2
23 20 -1.32
24 21 1.19
25 22 -0.06
26 23 1.15
27 24 -0.48
28 25 0.31
29 26 1.15
30 27 0.5
31 28 1.41
查询=LOOKUP(MAX(B2:B31),B2:B31,A2:A31)
返回 28,这是应该的,但是查询=LOOKUP(MIN(B2:B31),B2:B31,A2:A31)
返回#N/A
。
有什么建议吗?
答案1
答案2
查找要求数据按升序排序。公式的 Max 变体返回正确结果纯属运气。
在排序范围内的查找工作方式如下:
- 将数据范围减半,然后查看最后的上半年的价值
- 如果查找值小于该值,则继续处理前半部分数据,否则继续处理后半部分数据
- 重复上述步骤,直到只剩下一个值
关于近似匹配查找的更全面的描述可以在这里找到Vlookup –为什么我需要 TRUE 或 FALSE?。
如果数据未排序,那么任何正确的结果都纯粹是运气。
编辑:
另一个答案中建议使用 Offset 的解决方案,但它不稳定,可能会导致工作簿运行缓慢。如果无法更改范围的排序顺序,则 Index/Match 是非不稳定的替代方案。
=Index(A2:A31,MATCH(MIN(B2:B31),B2:B31,0))
=Index(A2:A31,MATCH(MAX(B2:B31),B2:B31,0))