成语| 古诗大全| 扒知识| 扒知识繁体

当前位置:首页 > 趣味生活

excel如何统计出现次数

Q1:excel中如何统计每个数据出现的次数

方法1-函数法
假设数据在A列
B1输入 =COUNTIF(A:A,A1)公式下拉复制。
*B列显示各个数字在A列出现的次数。
方法2-数据透视表法(直观)
1.加上标题,如:数字。
2.选择A列,【数据】-【数据透视表】-完成。
将“数字”拉到数据透视表模板的“行字段”区
将“数字”拉到数据透视表模板的“数据”区
右键点击数据区-选择“字段格式”-选择“计数”
*显示每个数字(唯一值)出现的次数。

Q2:excel如何统计多个单元格某个词组出现的次数?

这个结果验证应该没有问题,1楼回答的公式=SUMPRODUCT((LEN(I2:X2)-LEN(SUBSTITUTE(I2:X2,"返情",""))))/2

Q3:excel怎么统计一段数字出现的次数

在C1中输入或复制粘贴下列公式
=COUNTIFS(B:B,">="&ROW(A1)*10-10,B:B,"<"&ROW(A1)*10)
下拉填充共10行

这是一个典型的多工作表统计问题。

假设【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

猜你喜欢

更多