如何使用Excel统计某电话号码有多少人打过
发布时间:2023-04-26 00:59:18
派出所的一个朋友在调查一起案件的时候,遇到了一个如题的问题,请我帮忙。由于要保密他不能提供原始数据,只是给我谈了一下要求。派出所的一个朋友在调查一起案件的时候,遇到了一个如题的问题,请我帮忙。由于要保密他不能提供原始数据,只是给我谈了一下要求。目前他们通过一个嫌疑犯的通话记录,从通话记录中又列入了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
猜你喜欢
- 在同一个word文档里,首页不要页眉(很多文档都需要个封面,而封面是不能有页眉的),剩余的其他页面都要有页眉。应该怎么设置呢?今天,小编就教
- 给文档里添加下划线是我们平常最常用的功能之一,比如标注一些经典语句或者做个标记等,那么在word文档中怎么添加下划线?下面小编就为大家详细介
- word进行截图的步骤如下:步骤一:启动WORD2013,在需要插入截图处单击“插入”--“屏幕截图”后,出现“可用视窗”和“屏幕剪辑”两个
- 在使用Excel的过程中,我们往往先把表格根据要求做好,这时单元格的列宽已经固定好了,但有的列字符数目不等。比如在录入家庭住址时,有的家庭住
- word打字后面的字会消失,覆盖后面的文字这种情况,出现这种情况一般是因为insert键或Word设置问题。可以看一下word最下方是插入还
- 多行Excel中怎么插入行时保持表格编号连续?有时候我们需要在一个已经存在的excel表中插入一行或者多行,对于行数不是很多的情况下我们可以
- 在Word文档中,边框和底纹对文字都有一种修饰的作用,如果运用得当,不仅可以增加美观性也可以突出文档中的重点内容。在上篇经验中我已经分享了设
- Office中的艺术字(英文名称为WordArt)结合了文本和图形的特点,能够使文本具有图形的某些属性,如设置旋转、三维、映像等效果,在Wo
- 如果您的Excel表格设置了格式,或者是从其它表格中复制了格式到该表格,当您试图保存文件的时候,发现不能保存格式,那么,请使用如下的方法来保
- 新装win10后用不惯或者发生错误导致使用不了,想回退到win7,却发现没办法装回win7。这该怎么办呢,要保证安装过程没出差错,实在不行可
- 闪电pdf编辑器一款专业的办公软件,这款软件支持PDF编辑、阅读、批注、编辑文本、绘图标注、添加照片、填写表单、签署合同等,本文中介绍的是将
- Excel中的好多函数,其名称大体雷同,但是功能却存在差异。 本文给您介绍的是COUNT函数,一起来看看吧count函数在我们日常工作中的使
- 问题:如何使文字在文本框中居中呢?我在WORD中插入了一个竖排的文本框然后想要让文字左右居中,但只能设置成上下居中,有高手遇到过这个问题吗?
- 下面小编就为大家介绍Excel在日期中加分隔符使其分隔开来的方法,相信很多朋友都很想知道吧,有需要的朋友一起来看看吧  
- Win10系统的电脑算是目前使用最普遍的电脑系统了,那么在使用win10电脑的时候难免会遇到一些问题,例如左下角的win键失灵了该怎么办?今
- 一、为起链接的源文档添加书签1、将光标定位在所需要的位置;2、单击插入----超链接按钮;3、弹出书签对话框,输入书签名,点击添加按钮,书签
- 常常在网上看到一些漂亮的形状图样,想着自己也要制作出属于自己独创的图形样式。在Word2007中,我们知道,提供了多种多样的线条、形状。而我
- Win10命令提示符被禁止使用怎么办?我们使用电脑时,有一些命令是不能使用鼠标点击实现的,只能使用命令提示符输入命令使用来运行。如果碰到了命
- Word文档是一款主要用于处理文字的办公软件。在Word文档中编辑文档时我们有时候可能会发现页面太宽了,而文字只在其中占据了一小部分位置,如
- 我们平时使用Word文档办公时,为了提高我们文章内容的丰富性,经常会在文章内容中插入许多图片,但是如果图片大小不一的话,不然没有帮助到我们,