Excel MATCH函数查找0.035*100计算值时返回#N/A的原因咨询
Excel MATCH函数匹配0.035*100返回#N/A的原因及解决办法
这是浮点数精度误差导致的问题:
- Excel采用二进制浮点数存储数值,像0.035这类十进制小数无法被二进制精确表示。计算
0.035*100后得到的并非精确的3.5,而是一个和3.5存在微小差异的数值(比如3.5000000000000004)。当MATCH执行精确匹配时,这个带偏差的数值和数组里的3.5不相等,因此返回#N/A错误。 - 而
0.045*100的计算结果刚好不存在影响匹配的精度误差,所以能正确匹配到数组中的4.5(对应位置4)。
解决办法
- 用ROUND函数修正计算结果的精度,消除微小误差:
这里保留1位小数,和数组内数值的精度一致,能确保匹配成功。MATCH(ROUND(0.035*100, 1), {3,3.5,4,4.5}, 0) - 也可以用TEXT函数统一数值格式后再匹配:
MATCH(TEXT(0.035*100, "0.0"), TEXT({3,3.5,4,4.5}, "0.0"), 0)
内容的提问来源于stack exchange,提问作者scheherazade
相关产品推荐
相关产品推荐

