excel学习库

excel表格_excel函数公式大全_execl从入门到精通

EXCEL不重复统计次数「思路详解」

不重复统计次数

如图一

求出非空单元格第一次出现的个数之和是多少?

整体思路将非空单元格的第一次相加,最后就可以拿到不重复的统计人数

1. 如何不统计到数据范围里面的空白单元格,只统计非空单元格?

如何让重复单元格最后只是统计1次?

问题一解决

这里在思考怎样不取到空白单元格时,本质上就是让空白单元格在次数求和时不参与进来,也就是让空白单元格的数值最后就是0。

这样考虑的时候就想到逻辑判断,逻辑值TUREFALSE在参与计算时,可以看作10,所以这里用一个公式

=$C$2:$C$18<>

就可以让非空单元格全部都是TURE空白单元格都是FALSE

那么问题一就得到解决。

最后会形成数组

{TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;FALSE}

问题二解决

如何让数据重复的单元格最后拿到的值是1,这里想到分数的形式,例如如果一个数重复5次,只需要用1除以出现的总次数最后相加就会得到11/5+1/5+1/5+1/5+1/5=1

由于问题一解决的时候,刚好让非空单元格全部返回的是TURE的值,也就是1可以满足这个想法的需求。

统计一个值出现的总次数,这里就需要引入一个函数COUNTIF函数,是统计一个区域,某个值出现的次数。

例如A1="1",A2="2",A3="2",那么=COUNTIF(A1:A3,A2),返回值是2

这个EXCEL特殊判断特殊判断EXCEL文本形的数字默认会当作数值EXCEL数值精度只有15遇到身份证这样的超过18位的数值,EXCEL会只根据前15位进行判断,以表一的数据为例,如果输入公式:

=COUNTIF($C$2:$C$18,C2)

返回值将会是8,而不是1,因为EXCEL当作数值时,只会取前面15位进行判断,如图二

这个时候需要在参数地方加一个通配符*来进行操作。

使得公式变为

=COUNTIF($C$2:$C$18,C2&"*")

意思是要匹配包含C2单元格文本的次数,EXCEL这个时候就会按照问题进行匹配

如图三

由于要与问题1形成的TUREFALSE数组相对应所以公式为

=COUNTIF($C$2:$C$18,$C$2:$C$18&"*")

这个公式会对C2:C18的每一个单元格进行取值形成一个次数的数组相当于数组

{1;1;3;3;3;8;8;8;8;8;8;8;8;2;2;1;8}

最后形成最终公式

=SUM(($C$2:$C$18<>"")/COUNTIF($C$2:$C$18,$C$2:$C$18&"*"))

由于是数组求和,需要Ctrl+Shift+Enter

005

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接