You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Excel COUNTIFS函数报错及重复行去重计数需求咨询

Excel COUNTIFS函数报错及重复行去重计数需求咨询

嘿,我来帮你捋捋这个问题哈!你现在遇到的问题根源,其实是写的COUNTIFS函数范围搞错啦~

你当前用的公式=IF(COUNTIFS($B$2:$B$2,B196,$D$2:$D$2,D196)>1,0,1)里,只把统计范围限定在了B2和D2这单个单元格,那不管你匹配的B196、D196是什么内容,要么和B2、D2完全一致(返回1),要么不一致(返回0),自然没办法识别后续行里的重复组合,所以才会所有行都返回1。

针对你“只计数B、C列(你例子里是这两列,公式里写的是B、D,你可以根据实际列调整)组合第一次出现的行,重复行不计入”的需求,给你两种实用的解决办法:

  • 方法一:逐行标记重复状态
    如果想给每一行标记“是否是首次出现”,可以把COUNTIFS的范围改成从数据起始行到当前行,比如假设你的数据从第2行开始,公式写成:
    =IF(COUNTIFS($B$2:$B2,$B2,$C$2:$C2,$C2)>1,0,1)
    这个公式的逻辑是:统计从第2行到当前行中,B列值等于当前行B值且C列值等于当前行C值的次数。如果次数大于1,说明这是重复行,返回0;如果等于1,说明是首次出现,返回1。之后你只要用SUM函数对这一列求和,就能得到唯一组合的总数量啦。
    拿你的例子来说,B2、C2是NAME+INFORMATION,这一行返回1;到B4、C4同样组合时,统计次数是2,就返回0,完全符合你的要求。

  • 方法二:直接统计唯一组合数量
    要是不想逐行标记,想直接得到最终的计数结果,可以用SUMPRODUCT函数:
    =SUMPRODUCT(1/COUNTIFS($B$2:$B$100,$B$2:$B$100,$C$2:$C$100,$C$2:$C$100))
    这里的$B$2:$B$100$C$2:$C$100要换成你实际的数据范围。这个公式会先统计每个组合出现的次数,再用1除以次数,最后求和——重复组合的1/次数相加会等于1,首次出现的组合就是1/1=1,最终结果就是所有唯一组合的数量。

备注:内容来源于stack exchange,提问作者user1799972

火山引擎 最新活动