Excel中使用函数实现多行去重与多条件去重统计
最近一直在折腾Excel,感觉自己都快变成Excel精通了:joy:
现在我们有这么一个表
想要统计某姓名分类为A的编号数量有多少个怎么办呢?
可以使用这个函数,输入后按ctrl+shift+enter保存为数组形式(两边自动会加上大括号),否则会出错。
=COUNT(1/FREQUENCY(ROW($1:$21),IF($C$2:$C$20<>0,MATCH($C$2:$C$20,$C$2:$C$20,)*($A$2:$A$20="赵")*($B$2:$B$20="A"))))-1
效果如图所示:
函数解释如下:
=COUNT(1/FREQUENCY(ROW($1:$21),IF($C$2:$C$20<>0,MATCH($C$2:$C$20,$C$2:$C$20,)*($A$2:$A$20="赵")*($B$2:$B$20="A"))))-1
ROW()函数:指定对单元格引用的区域,可以比需要选择的区域大,但不能小
IF()函数:使用<>0,实现去除空行,如果没有这个IF遇到空行则会出错,但是这个IF似乎也会把0去掉
MATCH()函数:返回指定数值在指定数组区域中的位置,
在这个语句中前两个参数相同,用于去重,第三个参数默认留空
*乘号后面的括号用来指定多重条件,
例如*($A$2:$A$20="赵")则指定筛选A列区域中为“赵”的行
其他字段函数尚未完全理解,还有待研究中……
另外如果不需要设定筛选条件,只需要实现去重统计,则可以使用函数:
=SUM(IF(C2:D20<>0,1/COUNTIF(C2:D20,C2:D20)))
效果如下图:
这个函数可以实现一个区域内的去重统计(上一个函数暂时不可以)
函数解释如下:
=SUM(IF(C2:D20<>0,1/COUNTIF(C2:D20,C2:D20)))
SUM()函数:普通的求和函数
IF()函数:依然是实现去除空行
COUNTIF()函数:定义是符合条件的情况下计数,前一个参数是定义区域,后一个参数是条件
前面参数为需要判断是否重复的项,后参数为已知的重复值,
对每一行都使用COUNTIF()函数,不为0的那一行即为存在重复值。
用这个方法可以统计多列中的重复值,而不会被单列中自己的重复值影响。
参考链接:
请教:怎样统计自动筛选后的某一区域不重复的单元格的个数?
excel 多条件去重计数公式
Excel数据筛选去重然后统计的多条件函数。
上一篇文章: 运用scrapy爬虫框架爬取fgowiki上的礼装图片
下一篇文章: 区块链思维导图小记