本文收集整理关于统计excel中某个名出现的次数的相关议题,使用内容导航快速到达。
内容导航:
Q1:EXCEL怎样统计名单表中出现人名的次数,并按次数的多少自动排序?
使用数据透视表,行标为姓名,再用姓名记数。直接在记数结果上倒序排
Q2:excel怎么统计某个人名出现扣分的次数
假设表在SHEET1,在SHEET2中做新表,B2行为扣分公式(A列为姓名,B列为行为扣分):
=SUMPRODUCT((A2=sheet1!B:B)*(MONTH(sheet1!A:A)=8)*N(IF({1},C:C)))
Q3:EXCEL中如何能统计某个名字出现的次数?并将该次数在某个单元格中显示出来?
假定要在区域A1:C30中查找“张三”出现的次数,公式如下:
=COUNTIF(A1:C30,"张三")
wwW.YI+JiTao.cOM
这是一个典型的多工作表统计问题。
假设【sheet2—sheet5】A列都是值班人员的姓名。Sheet是统计的总表。
如下图:
1、用函数解决。条件是数据源所在的工作表名称比较有规律,如例子中的Sheet2--Sheet5。可以使用SUM+COUNTIF+INDIRECT函数来实现,如下图:
公式为:
=SUM(COUNTIF(INDIRECT("Sheet"& ROW($2:$5) & "!A2:a1000"),A2))
数组公式,Ctrl+Shift+Enter三键一起按,才能得出结果。
公式解释:
1.1、因为工作表名称比较有规律,所以可以使用INDIRECT函数将sheet2—sheet5的单元格范围都打包成一个组合。
ROW($2:$5) 返回 {2;3;4;5} 这样的数组;
INDIRECT("Sheet"& ROW($2:$5) & "!A2:a1000") 返回
sheet2—sheet5这几个工作表A2:A1000单元格范围的组合;
1.2、COUNTIF(INDIRECT("Sheet"& ROW($2:$5) & "!A2:a1000"),A2)
COUNTIF函数分别计算sheet2—sheet5中A2:A1000每个姓名的次数,如果姓名存在,则计数1,返回{1;1;1;1};
1.3、最后用SUM函数求和{1;1;1;1},得出结果。
二、VBA方法,如果工作表的名称没有什么规律,则不容易用函数来实现,用VBA是比较适合的。具体的思路,其实和函数的思路一样。参考代码为:
文字代码为:(没有使用字典计数,相对而言读者可能更接受调用工作表函数的方法)
Sub vf()
Dim arr, s&
打包数据源工作表
arr = Array("Sheet2", "Sheet3", "Sheet4", "Sheet5")
With Sheets("sheet1")
For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row 循环统计姓名次数
For Each sh In arr 遍历打包好多工作表组合
调用COUNTIF函数进行计数,并将其输出
s = s + Application.CountIf(Sheets(sh).Range("a2:a1000"), .Cells(i, 1))
Next
.Cells(i, 2) = s 输出次数
s = 0 次数清零
Next
End With
End Sub