让你的Excel效率开挂~(?˙▽˙?)
前段时间遇到这样一个问题,让我很头疼 。
![Excel里去除重复值、统计数量的2种方法,快点学起来吧](http://img.jiangsulong.com/220405/1U0543349-0.jpg)
文章插图
头疼的原因有 3 点:
? 问题描述不清晰,理解起来困难;
? 去重复计算数量,函数公式实现难度大;
? 提问的是个男生 。
![Excel里去除重复值、统计数量的2种方法,快点学起来吧](http://img.jiangsulong.com/220405/1U054F95-1.jpg)
文章插图
我尝试着把问题精简了一下,是这样的,你就凑活着看吧 。
![Excel里去除重复值、统计数量的2种方法,快点学起来吧](http://img.jiangsulong.com/220405/1U0544W9-2.jpg)
文章插图
一列「用户 ID」,一列「活动日期」,现在想统计,每个用户参加活动的天数 。
因为用户可能在 1 天中参加多次活动,所以要根据「用户 ID」对「活动日期」去除重复,然后再计数 。
明白了吗?
明白了,咱们就开始干!
![Excel里去除重复值、统计数量的2种方法,快点学起来吧](http://img.jiangsulong.com/220405/1U05420T-3.jpg)
文章插图
01方法一关于去除重复计数,也就是统计唯一值,Excel 中有一个经典的用法 。
使用 SUMRODUCT 和 COUNTIF/COUNTIFS 函数完成 。
= SUMPRODUCT(1/COUNTIF(统计区域,统计区域))
现在看不懂没关系,我们通过这个案例,一起走一遍这个过程 。
? COUNTIFS 统计数量 。
首先是统计数量,因为这里有「用户 ID」「活动日期」两列数据,所以我们用 COUNTIFS 函数 。
![Excel里去除重复值、统计数量的2种方法,快点学起来吧](http://img.jiangsulong.com/220405/1U0543N8-4.jpg)
文章插图
完成公式如下:
=COUNTIFS(C2:C16,C2:C16,B2:B16,H2)
计算结果:= {0;0;0;0;0;0;0;0;0;0;0;1;1;1;1}
注意:这里有一个数组的用法,在判断条件的参数中使用数组,那么计算的结果,也是对应数量的数组 。![Excel里去除重复值、统计数量的2种方法,快点学起来吧](http://img.jiangsulong.com/220405/1U054L59-5.jpg)
文章插图
? 数量求倒数 。
接下来,用 1 除以计数结果,获取对应的倒数 。
![Excel里去除重复值、统计数量的2种方法,快点学起来吧](http://img.jiangsulong.com/220405/1U0545630-6.jpg)
文章插图
完成公式如下:
=1/COUNTIFS(C2:C16,C2:C16,B2:B16,H2)
计算结果:={#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;1;1;1;1}
▲左右滑动查看因为「1/0」会出现「#DIV/0!」的错误,所以公式外面,再加一个 IFERROR 容错:
=IFERROR(1/COUNTIFS(C2:C16,C2:C16,B2:B16,H2),0)
计算结果:={0;0;0;0;0;0;0;0;0;0;0;1;1;1;1}
这一步是非重复计数的关键操作,结合下一步倒数求和,会更容易理解 。? SUMPRODUCT 倒数求和 。
因为 SUM 函数不支持数组操作,所以这里使用 SUMPROUDCT 进行求和 。
![Excel里去除重复值、统计数量的2种方法,快点学起来吧](http://img.jiangsulong.com/220405/1U0544121-7.jpg)
文章插图
完成公式如下:
=SUMPRODUCT(IFERROR(1/COUNTIFS(C2:C16,C2:C16,B2:B16,H2),0))
计算结果:= 4
到这一步,你可能就明白求倒数的意义了 。如果相同数据出现了 2 次,那么计数过程就是「1/2 + 1/2 =2」;
如果出现了 3 次,就是 3 个「1/3」相加「=3」;
其他次数以此类推,即实现了非重复计数 。
? 增加「用户 ID」判断 。
但是上一步计算结果,显然是错的,QY1 的去重计数,应该是 1 才对啊 。
这是因为计数的过程,没有对用户进行限制 。
因为 QY1 有「10/4」的记录,所有的「10/4」都被统计到 QY1 用户上了 。
![Excel里去除重复值、统计数量的2种方法,快点学起来吧](http://img.jiangsulong.com/220405/1U0544915-8.jpg)
文章插图
所以需要再增加一个用户条件的判断,这里使用 EXACT 函数实现 。
![Excel里去除重复值、统计数量的2种方法,快点学起来吧](http://img.jiangsulong.com/220405/1U05455H-9.jpg)
文章插图
完整公式如下:
=EXACT(B2:B16,H2)
计算结果:={FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}
▲左右滑动查看EXACT 的作用,是判断两个数值是否相等 。
因为 EXACT 中也是引用了区域,所以计算结果是一个 TRUE 和 FALSE 的数组 。
接下来,是把 EXACT 的计算结果,作为条件添加到前面的公式中 。
方法很简单,和第 1 步的计数过程相乘就可以了 。
![Excel里去除重复值、统计数量的2种方法,快点学起来吧](http://img.jiangsulong.com/220405/1U0542K7-10.jpg)
文章插图
完成公式如下:
=SUMPRODUCT(IFERROR(1/COUNTIFS(C2:C16,C2:C16,B2:B16,H2)*EXACT(B2:B16,H2),0))
▲左右滑动查看计算结果:
推荐阅读
- 煮熟的粽子常温过夜还能吃吗 煮好的粽子能在锅里焖过夜吗
- 什么时候贴春联儿 贴春联从哪里开始贴
- 为什么比赛结束后,球员都要进急冻箱,里面的液氮可是零下100度
- 家里有隐翅虫 家里的隐翅虫如何清除
- 竹叶青茶产自哪里竹叶青茶的生长环境
- 梦见边上厕所边吃饭是什么意思 周公解梦梦见厕所里吃饭
- 东方不败的武功有多高 东方不败的武功在金庸里面排
- 广州哪里的酒吧比较嗨
- 冰岛茶产地在哪里 冰岛茶产地地理位置
- 家里突然有红蚂蚁是什么原因 家里为什么会出现红火蚁