我在使用 Excel 查找和匹配时遇到了非常奇怪的行为:如果我尝试查找或匹配 7.03,它会找到一个单元格,但如果我查找 7.02+0.01,它会失败。例如:
A | 乙 | |
---|---|---|
1 | 7.01 | A |
2 | 7.02 | b |
3 | 7.03 | C |
4 | 7.04 | d |
5 | 7.05 | 埃 |
- 如果我
=VLOOKUP(7.03, A1:B5, 2, 0)
正确使用它就会返回c
- 如果我这样做
=VLOOKUP(7.01+0.01,A1:B5, 2, 0)
,它会正确返回b
- 它正在查找 7.02 - 如果我
=VLOOKUP(7.02+0.01,A1:B5,2,0)
这样做,它会失败并返回#N/A
- 对于等效的 XLOOKUP 和 MATCH 公式,它也会失败
它也对其他计算值失败 - 不仅仅是这个。如果我执行“不精确”匹配类型,它会找到错误的值(7.02)。
我可以解决这个问题,但这是一个错误还是我可以控制它 - 如何控制!?
我使用的是 Excel for Mac 版本 16.84 (24041420)
答案1
涉及小数部分的数字的计算总是会产生微小的值差异,因为此类数字通常具有无限的二进制扩展,需要进行四舍五入。
因此,如果可能的话,应使用整数进行此类搜索,或者可以使用四舍五入
=VLOOKUP(ROUND(7.02+0.01,2),A1:B5,2,0)