Excel中if函数判断结果是错误的,是什么原因造成的?

if函数公式为:=IF(D3=K3,"OK","NG") D3和K3的值是一样的,但是if函数判断为NG,是错误的,为什么会这样?

很明显D3和K3不相等,所以结果会是if的非结果。

原因有几个可能性

1、将D:K列的数据不选择对齐方式

红色框框内的几个按钮从左至右分别是

左对齐,居中,右对齐,减少缩进量,增加缩进量

我们一般会使用前面三个左对齐,居中,右对齐,在此,我们取消对齐方式

当我们对某个单元格或区域选择左对齐时,左对齐按钮显示是灰色底纹,此时表示该单元格是左对齐方式 。再点击一下,就取消了左对齐,且底纹消失,颜色恢复成和其他按钮一样没有底纹。

为什么要取消选择,目的很简单

在不选择对齐方式的时候,数字居左,文本居右,逻辑值居中

我们不妨打开一个空表,不作任何设置的情况下,分别输入下数字1、2、3此时我们看到的这些数字都是右对齐,我们并没有对其做对齐方式设置,往往我们都习惯性居中选择,做了设置对齐,反而不利于我们对数据的一个准确的判断。有些文本性的数据,看似是数据,实际是文本,文本数字1和数值1当然是不相等的了。

2、如果我们取消对齐方式,都是居右对齐,表示对比数据都是数字型的。那么我们就要看他的值究竟是多少

手动输入的值,我们在编辑栏中去看

比如我们在A1单元格中输入1.12245这个数字,单元格A1中显示的却是1.12

这2个数字在比较适合1.12245=1.12。结果当然是False

由公式计算出来的结果,我们在编辑栏中只能看到的是公式,眼睛是看不出来结果究竟是多少,此时,我们有以下几个办法

①:对公式计算单元格增加小数点显示位数,多增加几位,直到连续出现0为止,我们再去和手输数值对比,这样就能看出是否是相等

②:对数据进行处理,假如我们手输数据都是三位小数,那么我们对公式结果K列再套一层round,即,=ROUND(原公式,3),此时也就是对公式计算值,保留三位小数,精确到万分位,与手输三位小数保持数值位数一致,再行比对。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-03-11
函数设置正确但是结果报错,有可能是单元格格式问题,需右键点击设置单元格格式进行修改,也可能是数据区域存在空格。
第2个回答  2021-09-03
像这种问题首先考虑数字精度,虽然显示的两位小数看着相等,但实际运算结果不一定,所以考虑k3的单元格公式加上round函数。确保实际结果只保留两位小数。
其次确认单元格格式,是否一直,如若数字格式和文本格式这样就会判定不一致。可以考虑使用value函数或者两个负号,或者乘1等方法来转变乘数字格式。本回答被提问者采纳
第3个回答  2021-09-03
可能是格式不一样,你改一下公式=IF(D3*1=K3*1,"OK","NG")
这样都转换成数字应该就好了
第4个回答  2021-09-03
你看一下,两个数据一样不,保留两位小数,可能是因为小数点后面不一样,你看不见的部分有点差别追问

数据是一样的,D3单元格是手输入的值,单元格K3是公式其他两个单元格相减得出的值,其他两个单元格的值也是手输入进去的