excel - 匹配函数与公式中的数字不匹配
问题描述
在 excel 中,匹配函数无法在包含它的范围内找到匹配项。
由于我们无法附加工作簿,请使用以下步骤创建 MRE:
- A1=.99
- B1=1-A1
- C1=匹配(.01,B1:B2,0)
对我来说,C1 是#NA。它对你来说是这样的吗?如果是这样,为什么?如果没有,你能想到为什么它会适合我吗?
试过:
- 制作新的工作簿
- 测试 B1=.01 -> TRUE
- 硬编码 B1=.01 -> 匹配有效
- 将 B1 与自身匹配 -> 有效
- 将 B1 与包含硬编码 .01 的单元格匹配 -> 失败
- 谷歌搜索 -> 大量不知道 0=完全匹配或忘记检查字符串中的空格的人。
- 更改 A1 -> 非常有趣的是,对于 0.9、0.8 和 0.7 失败,但对于 0.6 有效(找到 0.4)。
解决方案
计算机以 2 为底,而不是 10 为底,因此在进行浮点运算时,有些数字无法表示,即使它们以 10 为底看起来非常好。您看到的是 0.01,但 Excel 实际上计算了 0.0100000000000000000000x 或类似的东西。
如果您想让您的示例正常工作,请尝试将 B1 设置为
=ROUND(1-A1,2)
或者,如果你知道你只需要两位小数精度(假设你匹配到 0.01),你可以通过以下方式避免浮点数:
=(100-(100*A1))/100
推荐阅读
- c# - 使用实体框架时 ASP.NET Web 应用程序重新启动
- laravel - 有时|必需|电子邮件和有时|电子邮件验证规则之间的区别
- angular - Word 文档中未列出 Office.js API 样式
- c# - 如果我单击空白区域,C# DataGrid ContextMenuOpening 错误
- shell - 通过 shell 脚本调用 Snowsql 程序
- php - PHP 安全测试为 GetHTMLValueString 提供了严重的 Reflected XSS 警告,我该如何解决?
- css - 从同一个 SCSS 文件导入嵌套类
- javascript - 405 - Uncaught (in promise) 错误:请求失败,状态码为 405
- java - 是否可以在 Spring Boot 中全局管理错误?
- typescript - 找不到打字稿声明文件 .d.ts / 不是模块