作者:iamlaosong

同事在用countif函数对比两列数据时发现一个奇怪的现象。先说一下这两列数据吧,数据是邮件号码,内容基本相同,顺序一致,但其中一列少了几个。同事就想用countif函数计算本号码在另一列中的数量。如果存在,结果是1,反之结果为0,结果发现,在出现一个0之后,后面的全都是0,即便这个号码存在,效果和直接比较相等差不多,如下图:

仔细研究才发现,是countif函数两个参数写反了。正确的写法应该是“范围”在前,“条件”在后,如下图:

只是第一种写法没有报错,还有一个计算结果。按照函数参数的理解,第一个参数是范围,说明范围是一个单元格,第二个参数是条件,在给出一列的情况下,挑出与公式同一行的单元格进行比较,计算出结果。那是不是可以将两个参数都写成范围,从而得到正确的结果呢?结果果然如此,这样一来,所有的单元格公式都一样了,有意思吧。如下图:

其他函数也有类似现象,感兴趣的朋友可以自己找找试试,比如vlookup函数就是这样,如下图:

公式中的A:A*1正常写法应该是A403*1,之所以要乘以1,是因为图片中的A列是文本,对比的另一列中的A列是数值,通过这个技巧可以将文本型数字转换成数值。同样用“&”符号可以将数值转换成文本数字,如下图:

注意:上面公式中都用范围代替了具体的单元格,Excel自动挑选公式所在行的单元格进行比较。

还有一点,countif函数好像不关心单元格的属性,文本型和数值型可以正常比较。

更多推荐

写错countif函数的参数顺序引出的思考