首页 > 解决方案 > 匹配函数与公式中的数字不匹配

问题描述

在 excel 中,匹配函数无法在包含它的范围内找到匹配项。

由于我们无法附加工作簿,请使用以下步骤创建 MRE:

  1. A1=.99
  2. B1=1-A1
  3. C1=匹配(.01,B1:B2,0)

对我来说,C1 是#NA。它对你来说是这样的吗?如果是这样,为什么?如果没有,你能想到为什么它会适合我吗?

试过:

  1. 制作新的工作簿
  2. 测试 B1=.01 -> TRUE
  3. 硬编码 B1=.01 -> 匹配有效
  4. 将 B1 与自身匹配 -> 有效
  5. 将 B1 与包含硬编码 .01 的单元格匹配 -> 失败
  6. 谷歌搜索 -> 大量不知道 0=完全匹配或忘记检查字符串中的空格的人。
  7. 更改 A1 -> 非常有趣的是,对于 0.9、0.8 和 0.7 失败,但对于 0.6 有效(找到 0.4)。

标签: excelexcel-formulamatch

解决方案


计算机以 2 为底,而不是 10 为底,因此在进行浮点运算时,有些数字无法表示,即使它们以 10 为底看起来非常好。您看到的是 0.01,但 Excel 实际上计算了 0.0100000000000000000000x 或类似的东西。

如果您想让您的示例正常工作,请尝试将 B1 设置为

=ROUND(1-A1,2)

或者,如果你知道你只需要两位小数精度(假设你匹配到 0.01),你可以通过以下方式避免浮点数:

=(100-(100*A1))/100

推荐阅读