表格统计人名出现次数并自动排序(如何在表格中统计出不同人员数据)
你是否遇到过下面这种表格:
一个单元格内存在多个人名,人名之间用顿号分隔,需要算出总人数(我这里是举例只有一行数据,一般出现这种不会只有这么点)
先来看屌丝青年的做法:
在A3单元格写公式:=SUBSTITUTE(A2,"、","")
在A4单元格写公式:=IF(A2<>"",LEN(A2)-LEN(A3) 1,"")
因为人名之间是用顿号分隔的
所以在第三行先替换掉"、"
然后在第四行计算有顿号和没有顿号的差值然后 1
得出这个单元格对应的第二行的单元格内有多少个人最后拉一下总人数填上去
注:if在这里起的作用是判断第二行的数据是否为空如果不为空就进行差值相减,但如果为空当前单元格也为空,如果此处没有if判断,这种写法就会出错,不信你试试
再来看普通青年的做法:
在A3单元格写入公式:
=IF(A2="","",LEN(A2)-LEN(SUBSTITUTE(A2,"、","")) 1)
他是把屌丝青年的两步整合成了一步,运算方法是一样的就不再叙述了
再来看天才少年的操作:
直接在总人数单元格写公式:
=SUM(N(MID(A2:F2,ROW(1:99),1)="、")) COUNTA(A2:F2)
数组公式,三键结束
这里的mid会将A2:F2单元格依次分别拆分成包含99个元素的数组,无内容记为空
这个在上篇已经讲过,没看过上篇的戳下面链接查看
快速搞定字符串提取2-中间提取英文、数字
说一下这个N函数:
将不是数值的值转换为数值,逻辑值TRUE记为1,其他记为0
在这里的作用是对mid拆分出来的元素进行判断是否等于"、"如果是顿号那么就是TRUE,记为1,如果不是就是0
那么一共有多少个顿号都在N的数组里面了,只需要用sum汇总N的所有值,就得出来有多少个顿号了
但是还有个问题,像B2单元格没有顿号那N肯定把它记为0了
还有像A2单元格虽然只有2个顿号但是人名实际有3个,那这一步怎么办呢?
COUNTA解决的就是这个问题,因为实际人名数总比符号多1个,只需要用COUNTA统计这一行非空单元格一共有多少个就OK了