当前位置: 首页 > 知识库问答 >
问题:

Excel如果相等和匹配不返回相同的东西

魏刚豪
2023-03-14

我在单元格A1和B1中放置了两个日期时间值。约会时间精确41703.0416666667。一个是从SQL数据库输出,另一个是手工编写的。

=if(A1=B1,1,0)的结果为1。=匹配(B1,A1,0)的结果为#N/A。

有人对为什么会发生这种情况有什么理论吗?

共有2个答案

东门文斌
2023-03-14

问题在于浮点计算(见http://support.microsoft.com/kb/78113),一个可能的解决方法是使用轮()函数。在你的例子中,四舍五入到10或12小数可能足以解决这个问题。

裴令秋
2023-03-14

可能是将十进制转换为二进制的问题。参见相关回答:

使用Excel 2010的简单HLOOKUP失败

这似乎是二进制存储浮点数的一个限制-如下所述:http://support.microsoft.com/kb/214118

Microsoft Excel和Microsoft Works中对浮点数进行的许多算术运算组合可能会产生非常小的错误结果。例如,等式=1*(.5-.4-.1)可计算为数量(-2.78E-17),或-0.0000000000000000278,而不是0。

这个问题也不是excel独有的,而是以下原因造成的:

IEEE 754规定,数字应以二进制格式存储,以减少存储需求,并允许所有微处理器上可用的内置二进制算术指令以相对快速的方式处理数据。然而,一些简单的、不重复的十进制数被转换成重复的二进制数,无法以完美的精度存储。

 类似资料:
  • 问题内容: 我有一个包含200条记录的表,其中10条记录的文本包含单词“ TAX”。 当我执行 然后我正确地得到了那10条记录的结果集。 但是当我试图排除那些记录时 它仅返回100条记录,而不是190条。 问题答案: 这会返回正确的结果吗? 我认为这里是值的问题,如果列中包含它们,则将返回,因此将不会被选择。 我建议您阅读有关使用值进行处理的信息,或在这里。 正如@ughai所建议的,如果性能是一

  • 有一个InfiniteScrollListener,在该侦听器中,在方法中,我计算可见项计数和总计项计数,以检查是否应该加载新项。当totalItemCount和visibleItemCount相同时,会导致无限循环的加载。侦听器与我的另一个或作为父级的侦听器一起工作得很好。我想保持这种结构,因为客户不会接受改变。 我在一个活动中有一个片段,它的布局如下所示

  • 文档: 操作: 合作伙伴: HQL(“INCASAT”=“兑现”,“VANDUT”=“出售”):

  • 根据逻辑,我需要实现两个,如果它们以相同的“相对”顺序具有相同的元素,则它们被认为是相等的。 举个例子,以下一对列表被认为彼此相等: 只要遵守相对顺序,就可以认为它们是平等的。 作为反例,这两个不相等: 导致 和 交换到位。 所以,基本上我发现这很有挑战性,因为这不是顺序完全重要的情况,也不是顺序完全不重要的情况。在这种情况下,我会使用普通的< code>list1.equals(list2)方法

  • 问题内容: 让我们上一堂课。人有名字和身高。 Equals和hashCode()仅考虑名称。人是可比的(或者我们为它实现比较器,没有关系)。将人按身高进行比较。 预期两个不同的人可以具有相同的身高的情况似乎是合理的,但是例如。TreeSet的行为就像comapareTo()== 0意味着相等,而不仅仅是相同的大小。 为避免这种情况,如果大小相同,比较可以次之于别的东西,但是它不能用于检测相同大小的