首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用 Excel countif 统计重复值,对天发誓公式没错,但结果错,咋整?

统计重复值,经常会用到 countif 函数,但是最近有读者在使用这个函数的时候结果却出错了,而公式明明是对的。

案例:

下图 1 是每个客户编号对应的最终销售,每个客户可能在不同的销售间转手多次,但最终的销售只有一位。

请查找出客户编号有重复的所有单元格,在 C 列中显示 dup,效果如下图 2 所示。

解决方案:

1. 选中 C2:C12 区域 --> 输入以下公式 --> 按 Ctrl+Enter:

=IF(COUNTIF($A$2:$A$12,A2)>1,"dup","")

公式释义:

COUNTIF($A$2:$A$12,A2)>1:计算 $A$2:$A$12 这个固定区域中,每一个单元格的出现次数是否 >1 次;

IF(...,"dup",""):如果单元格出现次数 >1 则显示“dup”,否则留空

* 请注意:$A$2:$A$12 需要绝对引用。

但是结果有点让人意外,所有结果都是“dup”,也就是说每个客户编号都有重复?明明没有啊。要了解出错原因,就要从 countif 函数的特性说起。

从图上可以明显看出,客户编号列的格式是文本,因为这么长的数值,只有改成文本格式才能完整显示。

而 countif 在计算时,会将文本型数值识别为数值,再进行计算。问题恰恰就在这里,Excel 最多只能显示 15 位数值,超过的部分全部自动变为 0。这样的话,countif 统计出所有编号当然都是重复的。

那是不是在这种情况下就要摒弃 countif,而另辟蹊径?非也,还是用上面的的公式,只要稍微作一点点修改。

2. 选中 C2 单元格 --> 在原公式的基础上,在 A2 后面加上 &"*" --> 下拉复制公式:

=IF(COUNTIF($A$2:$A$12,A2&"*")>1,"dup","")

公式释义:

这个公式与原来的区别只是在 countif 的第二个参数后面加了通配符 &"*",它的作用是将单元格强制识别为文本进行计算,从而得出正确结果。

类似的参数变通用法,在 vlookup 中也可以举一反三,详情可参阅Excel vlookup 函数的几种高难度错误及解决方案。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20221106A02FI200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券