为什么两个看起来具有相同值的 Excel 单元格会测试为不匹配?

dww*_*n66 5 worksheet-function microsoft-excel

我正在为工作表创建验证列。我附上了正在发生的事情的图片。

  • A 列包含索引功能并正常工作。公式出现在图像的底部。
  • 列 B 使用索引值硬编码 - 没有功能 - 从外部文件 #2 剪切和粘贴。此列将用作查找列以将附加数据带入原始文档。
  • C 列比较 A/B 中的值并有条件地格式化单元格。如果两个文件中的一个文件中可能缺少一行,我们可以快速查看列表不同步的位置,以便我们可以更正错误。
  • 正如您在附加图像中看到的那样,D 列返回了意外结果。

以下是我验证过的内容:

  • 工作表大约有 3000 行和 40 列。我之前处理过更大的文件,没有发生任何事故。
  • Cols ABDF 被格式化 Number>Special>0000.00
  • 山口CC,式为AB中所指出的,包含数字2或3号。我试图更改数字格式后的再计算general,以Number>Special>0000.00
  • Cols ABDF 已扩展到大约 20 个小数位,我没有在任何值中发现单独的 .000000000001。
  • 我刷新了我的数据,所以一切都重新计算为当前。
  • Cols D & F 是作为测试创建的,只是为了查看是否可以获取这些值并进行比较并获得不同的结果。我没有得到不同的结果;我的测试出现在上传的图像上。
  • 是的,我冷启动并重新启动 Excel。:)

在此处输入图片说明

任何想法或提示发生了什么或在哪里寻找如何纠正它?

Dav*_*ens 6

您可以尝试将值作为文本字符串进行比较:

=IF(TEXT(E364,"0000.00")=TEXT(F364,"0000.00"),"OK","Danger Will Robinson!")

或者,从外部文件导入的数据可能存在精度问题。在这种情况下,您可以更改测试:

=IF(Abs(E364-F364)<0.00001,"OK","Danger Will Robinson!")

第二个选项假设您可以安全地将相差 0.00001 的数字视为“相等”。如果没有,只需将该等式中的小数位增加到我认为最多 15 位。

  • 这是由 Excel 存储数字并使用它们进行计算的方式引起的 - 使用“浮点运算” - 请参阅 http://support.microsoft.com/kb/78113 - 正常的解决方法是使用 ROUND,使用 TEXT有效地实现与舍入相同 (3认同)