excel数据验证时 部分小数不对

匿名
2024-04-16T10:11:26+00:00

第三列第二行,公式为:=SUMIF(B$1:B3,B4,E$1:E3)

第五列第二行,设置数据验证,自定义公式为=OR(AND(D2="入库",E2>0),AND(D2="出库",E2<0,C2+E2>=0))

依次复制公式后,按照下图输入数据时,在第四行第五列输入-4.63时提示数据验证不匹配;

将第二行第五列的数据改为24.61,在第四行第五列输入-4.61时仍然提示数据验证不匹配;

将第二行第五列的数据改为24.6,在第四行第五列输入-4.6时未提示;

尝试其他数据,目前发现小数为.63的均报错 小数为.61的部分报错部分不报错

日期 批号 库存重量(kg) 出/入库 重量(kg)
A 0 入库 24.63
A 24.63 出库 -20
A 4.63 出库
Microsoft 365 和 Office | Excel | 家庭版 | Windows

锁定的问题。 此问题已从 Microsoft 支持社区迁移。 你可投票决定它是否有用,但不能添加评论或回复,也不能关注问题。

0 个注释 无注释

1 个答案

排序依据: 非常有帮助
  1. 匿名
    2024-04-17T10:29:20+00:00

    您好,ZQ09

    欢迎来到微软社区。

    基于您的结果,可能您遇到的问题可能与Excel中小数的精度和计算方式有关。当使用数据验证或公式涉及小数运算时,Excel可能会因为内部的浮点数处理方式而导致意外的行为,尤其是在边界条件检测时。这种情况通常是因为计算机在处理二进制中的十进制数时可能不会得到完全精确的结果,从而影响条件判断。

    为了解决这个问题,你可以尝试以下几种方法:

    1-> 调整精度,通过增加小数位数的精度,确保在数据验证和计算公式中使用相同的精度。

    2-> 使用ROUND函数: 在公式和数据验证中,使用 ROUND 函数来确保操作的数值与显示的数值精度一致。例如,将你的数据验证公式修改为:

    =OR(AND(D2="入库",E2>0),AND(D2="出库",E2<0,ROUND(C2+E2, 2)>=0))

    3-> 对于数据验证中的条件判断,尽量避免直接比较浮点数。例如,可以考虑添加一个小的误差范围来进行比较:

    =OR(AND(D2="入库",E2>0),AND(D2="出库",E2<0,ROUND(C2+E2, 2)>=-0.01))

    以上修改可以帮助避免因Excel内部的浮点数处理差异而导致的数据验证错误。如果问题依然存在,请试着与我分享您的文件,这应该有助于我帮助您看到更多的细节,谢谢;)请在浏览器右上角查看您的私人消息:

    此致,

    Icelynn |微软社区支持专员

    此答案是否有帮助?

    0 个注释 无注释