Excel统计某电话号码有多少人打过
发布时间:2022-05-20 17:55:24
派出所的一个朋友在调查一起案件的时候,遇到了一个如题的问题,请我帮忙。由于要保密他不能提供原始数据,只是给我谈了一下要求。目前他们通过一个嫌疑犯的通话记录,从通话记录中又列入了n个新嫌疑犯,而且也得到每个嫌疑犯的通话记录。现在就要将这些通话记录进行统计,即同一个电话号码,每个嫌疑犯打了多少次,有多少个嫌疑犯同时打过同一个号码。
根据上述总结,Excel表如下:
图一:原始数据表
图二:统计结果表
上图说明:
图一:用户一、用户二、用户三、用户四正面的数字为模拟的电话号码;方向是指主叫还是被叫,没有什么意义。
图二:用户正面的数字是该电话所使用的次数,如果一个电话只被某一用户打过,这样就不统计,换句话说就是统计结果表中的电话号码至少被两个以上的用户打过。
解决的思路:
⒈ 此统计无法使用函数、数据透视表等普通的方法来解决。我采用了VBA编程来实现的统计。
⒉ 首先将所有用户的电话(不重复,重复的只取一次),提取出来存放到统计结果表中。这样结果表中的电话是唯一的。
⒊ 通过结果表的电话号码为基础,统计每个用户使用该号码的次数并将统计的结果存放到结果表该用户下。
⒋ 删除同一个电话号码被两个以下用户使用的行。
解决的方法:
⒈ 因为用户的数量是未知的,但从第2列开始是已经的,这样我们就可以通过循环来进行统计。循环的条件通过第1行从第2列开始,单元格不空。
⒉ 每个用户的电话号码循环与⒈类似
具体的程序源代码如下:
Private Sub CommandButton1_Click()
Sheets(2).Rows(2 & ":" & 65536) = ""
Sheets(2).Columns("B:IV") = ""
Dim Ls, i, j, Isa, k, yhs
Isa = False
i = 2
If Sheets(1).Cells(1, 2) = "" Then
MsgBox "没有用户,无法统计!", vbOKOnly + vbCritical, "错误提示"
Exit Sub
Else
Do While True
If Sheets(1).Cells(1, i) <> "" Then
Sheets(2).Cells(1, i) = Sheets(1).Cells(1, i)
i = i + 1
Else
Exit Do
End If
Loop
yhs = i - 1
End If
Ls = 2
Do While Sheets(1).Cells(1, Ls) <> ""
i = 2
Do While Sheets(1).Cells(i, Ls) <> ""
If Sheets(2).Cells(2, 1) = "" Then
Sheets(2).Cells(2, 1) = Sheets(1).Cells(i, Ls)
Else
j = 2: Isa = False
Do While Sheets(2).Cells(j, 1) <> ""
If Sheets(2).Cells(j, 1) = Sheets(1).Cells(i, Ls) Then Isa = True: Exit Do
j = j + 1
Loop
If Not Isa Then Sheets(2).Cells(j, 1) = Sheets(1).Cells(i, Ls)
End If
i = i + 1
Loop
Ls = Ls + 1
Loop
Ls = 2
Do While Sheets(2).Cells(1, Ls) <> ""
i = 2
Do While Sheets(2).Cells(i, 1) <> ""
j = 2: k = 0
Do While Sheets(1).Cells(j, Ls) <> ""
If Sheets(2).Cells(i, 1) = Sheets(1).Cells(j, Ls) Then k = k + 1
j = j + 1
Loop
If k <> 0 Then Sheets(2).Cells(i, Ls) = k
i = i + 1
Loop
Ls = Ls + 1
Loop
'===========================================
' 删除非同一电话多个用户使用的行
'===========================================
i = 2
Do While Sheets(2).Cells(i, 1) <> ""
j = 2: k = 0
Do While j <= yhs
If Sheets(2).Cells(i, j) <> "" Then k = k + 1
j = j + 1
Loop
If CInt(k) < 2 Then
Sheets(2).Rows(i).Delete Shift:=xlUp '删除i行
Else
i = i + 1
End If
Loop
'===========================================
MsgBox "统计完毕!", vbOKOnly + vbInformation, "系统提示"
Sheets(2).Select
End Sub


猜你喜欢
- Win11的发布很多用户都表示想要进行升级,近来有用户反映自己的电脑符合Win11的硬件要求,但是没有收到系统升级的邀请?这是怎么回事呢?下
- Win11蓝屏代码0x0000001A的解决方法,最近有很多用户反映遇到了Win11蓝屏代码0x0000001A的问题,但是蓝屏的原因是各种
- win11无法安装solidworks怎么办?工作需要使用solidworks软件,但是电脑升级win11后没办法安装,该怎么成功安装呢?下
- ①启动PowerPoint2013,单击菜单栏--插入--形状,选择形状,例如我选的就是平行四边形。 ②画出形状,
- 在Win10中有个家庭组功能,可以让同一个局域网下的电脑共享操作,这样使用起来非常方便,但是在1803这个版本后微软取消了家庭组功能,因为其
- 不少小伙伴之所以关闭Win10系统自带的防火墙,就是为了防止下载的软件或文件被拦截,那么如果防火墙已经关闭了还提示被拦截该怎么办呢?下面就和
- 在工作中,我们时常会同时打开多个文档来进行对比或者编辑,但是一般的文档编辑软件默认情况下只能在一个窗口中打开,这该怎么办了?其实WPS文字中
- 怎么把Excel表格里面的名字全部对齐?Excel表格中的名字有两个字或者三个字的,单纯的表格居中设置,看起来还是很不美观,今天小Q来教大家
- 我们可以给一个单元格或区域定义一个名称,以便在公式中引用。如果区域不是固定的而是一个动态的范围,我们也可以给它定义名称,以后在公式中引用的就
- 为了了更好地满足企业用户的需求,微软在Windows 7企业版/旗舰版及Windows Server 2008 R2中引入了大量的存储、网络
- Excel怎么清除数据透视表样式?这篇文章主要介绍了Excel清除数据透视表样式教程,需要的朋友可以参考下很多人不知道Excel如何清除数据
- 国外论坛了Windows 8.1升级到Windows 8.1 Update RTM的简单教程,从截图看到只需要先后安装两个更新补丁即可完成升
- wps怎么看字数统计?WPS 文字的字数统计在哪里呢?如何查看当前文档有多少个字呢?下面就跟大家说下电脑版和手机版 WPS 文字字数统计在哪
- Mac 软件对于许多用户来说比较陌生,而我们在日常使用中,各种各样类型的软件是必不可少的,不知道哪些软件是实用且有意思的?接下来为大家推荐我
- 电脑用久了就容易出现一些这样或那样的毛病,比如说近期有Win10用户在更换网络后连不上网络打印机,这是怎么回事呢?对于这一情况又应该如何解决
- 韩剧TV,顾名思义就是一款可以看韩剧的播放器软件,在韩剧TV中,我们可以看到众多韩国的电视剧、电影、综艺节目等,基本可以说只要你想看的它就有
- wps软件是一款热门的办公软件,给用户带来了很多的文类型,在wps软件中可以编辑文档、表格文件等,给用户带来了很多的选项性,当用户在编辑表格
- 当我们在编辑Word文档时,有时我们需要输入箭头符号,但是我们发现键盘上的方向键并不能直接输入这个符号。如何在Word 里输入箭头符号呢?第
- 1.编辑在WPS素材库中,可编辑素材标题、标签;添加备注;选择指定目录等。例如:进入“我的素材 | 临时文件”,列表排序下,鼠标指向需要编辑
- 钉钉是一款办公软件,很多公司都是利用钉钉这款软件来打卡的,那你知道在钉钉上面怎么设置上班时间的吗?接下来我们就一起往下来看看钉钉设置上班时间