如果不考虑一个姓名下的重复数据,那“菜单“-》”数据“-》分类汇总”几秒就搞定,要重复不计数的话,只有用到VBA了,用公式没办法的。
不然就这样,你先按A列为主,B列为辅排个序,就像你图上那样,然后在D列第三格输入=IF(B3=B2,0,1),然后往下拖到最后,接着用上面说的分类汇总,分类字段用”姓名“,汇总方式用”计数“,选定汇总项选刚输入公式那列,应该可以解决你的问题!
=SUM(--IF($A$1:$A$9=A1,MATCH($A$1:$A$9&$B$1:$B$9,$A$1:$A$9&$B$1:$B$9,)=ROW($1:$9),0))
公式解析:
1、match函数,返回匹配成功出现的第一次的行号;语法:match(A,B,0),如果A=B就返回A在B组中位置的行号
这里MATCH($A$1:$A$9&$B$1:$B$9,$A$1:$A$9&$B$1:$B$9,)这里将AB列组合,匹配一致,返回第一出现的行号,和原数据的行号1:9对比,一样返回true,不一样返回False
2、IF函数,A列是否等于对应的值,从A1开始,等于直接后面,不等返回0
3、--将TRUE转成1,false转成0,方便后面计算
4、将--转成后的数值求和,就要满足条件的不重复值!
假设奇数列是人名,偶数列是对应值。
在a201、a202、...分别输入
张三、李四、....
在b201输入数组公式
=sum(sumif(offset($a$1:$a$200,0,row(1:
50
)*2-2),a201,offset($b$1:$b$200,0,row(1:
50
)*2-2)))
切记,一定要同时按ctrl、shift和回车。
粗体50表示可以满足前100列这种格式的(如果只是图中这6列,改为3就可以了)。
公式可以向下复制(再选中b201,鼠标移到其右下角,双击那个“+”)。
=COUNTIF(A:A,"张三")
张三可以为引用单元格。
比如C1单元格有的内容是:张三
那么公式可以这么写:=COUNTIF(A:A,C4)
同理,如果有一列名字,那么把公式下拉填充即可。