Excel表格中,在C列设置这个公式,为啥会出现这个错误?

Excel表格中,在C列设置这个公式:C4=IF(COUNTIF($D$2:$D$19,A4),"在里面","不在里面")现在问题是如下图:在B5 B10 B11 B16分别输入以9开头的数据后,该公式产生了错误的答案,请问,这个东东是什么原因造成的,如何改才可以避免纠正错误

你的公式跟你的图示完全没关系嘛。不过不影响大家帮你发现错误,错误是因为"*",在EXCE中"?"  "*"都是通配符,通配符的意思就是这个符号能代替任意一个或者多个任意字符。例如:9*0.28,那么你查找区域里面以9开头,0.28结束的所有字符串都符合你的计数。所以答案跟你的预想不一致是肯定的。

那么要处理这个问题就必须取消"*"通配符的特性,在EXCEL中,要查找*本身,需要在前面加~,即查找~*。那么公式中添加一个SUBSTITUTE函数,既SUBSTITUTE(A4,"*","~*"),具体公式如图示。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-09-16

首先,你表中的D列没有数据,因此你公式里面的D2:D19是什么?是表中的B列的数据么?

其次,按照你图中C列结果的显示,你只到了17列,我怀疑你意思是不是搞反了?是不是要求输入的数据在不在A列里面?因为如果是A列的数据在不在输入数据里面的话,你应该一直拉到底拉到21列的

第三,B12应该也不在里面也是错误的

如果按照我的怀疑的话,公式按照图中的应该是C4=if(countif(A:A,B4),"在里面","不在里面")

事实证明按照我上面的公式确实得到和图中一样的结果,那么为什么会出现错误的几列,原因就在于我们的偷懒!!如果我们把*写成×就没有问题了

*   在公式中是有特别的含义的,比如9*0.28,意思只要第一个数字是9,最后四个字符是0.28,那么就代表有这个数,所以显示在里面

我这边加了个条件,比较2个单元格本身字符串的长度是否一样

C4=IF(COUNTIF(A:A,D4)*EXACT(LEN(D4),LEN(A:A)),"在里面","不在里面")

当然我估计应该还有其余更简单的公式,望其他大神给出吧,我也在学习中

第2个回答  2021-09-16
错误主要是因为数据中的*,在EXCE中,?、*是通配符。COUNTIF函数可以使用通配符的,错误的结果都是按通配符计算的结果。
公式修改如下
=IF(SUMPRODUCT(--($D$2:$D$19=B2)),"在里面","不在里面")

将数据中的*替换为其他非通配符字符,原公式就没有问题了。
第3个回答  2021-09-16

顶部公式逻辑正确,书写格式也正确,

经过验证,公式结果不会出错,

具体公式为:=IF(COUNTIF($B$2:$B$19,A4),"在里面","×")

第4个回答  2021-09-16
从图上看,把你公式中的D$2:D$19改成A$2:A$19,A4改成B4。
相似回答