如何使用Excel统计某电话号码有多少人打过
派出所的一个朋友在调查一起案件的时候,遇到了一个如题的问题,请我帮忙。由于要保密他不能提供原始数据,只是给我谈了一下要求。目前他们通过一个嫌疑犯的通话记录,从通话记录中又列入了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
诺基亚900如何开机诺基亚900开机的方法如下按住电源键,直至手机振动。诺基亚900搭载4。3英寸WVGA分辨率(800times480像素)ClearBlackAMOLED材质的康宁大猩猩(Corn
诺基亚900如何在打开的应用程序之间切换诺基亚900在打开的应用程序之间切换的方法如下可以查看在后台打开了哪些应用程序和任务,并在它们之间进行切换。按住,向左或向右滑擦,然后选择所需的应用程序。诺基亚900搭载4。3英寸
诺基亚900如何调节音量诺基亚900调节音量的方法如下向上或向下按音量键。音量键可以控制所有声音,包括闹钟和提醒的音量。使用内置扬声器,在通话和播放声音文件时不必将手机放在耳边,可以将其置于相对较远的位置
诺基亚900如何使用返回键诺基亚900使用返回键的方法如下返回键返回至上一屏幕。按。手机将记住在上次锁定屏幕后访问的所有应用程序和网站。诺基亚900搭载4。3英寸WVGA分辨率(800times480像素)
诺基亚900支持扩展储存卡吗诺基亚900支持TF卡(microSD卡),最大支持32GB的储存卡。诺基亚900搭载4。3英寸WVGA分辨率(800times480像素)ClearBlackAMOLED材质的康
诺基亚900如何使用深色主题诺基亚900使用深色主题方法选择gt,然后选择主题gt背景色gt黑。诺基亚900搭载4。3英寸WVGA分辨率(800times480像素)ClearBlackAMOLED材质的康宁
诺基亚900如何呼叫语音信箱诺基亚900用户可以将来电转接至语音信箱。如果用户未接听电话,呼叫方还可以留言。语音信箱是一项网络服务。1选择gt。2如果手机要求输入语音信箱密码,请输入此密码。3用户可以收听答复
诺基亚900如何搜索网络诺基亚900搜索网络方法1按。2在搜索框中输入搜索字词,然后选择。用户也可以从建议的匹配项中进行选择。提示要查看相关的搜索结果,滑擦到本地或图片。诺基亚900搭载4。3英寸WVGA
诺基亚900如何关闭相机诺基亚900关闭相机方法拍摄完照片后,请按。诺基亚900搭载4。3英寸WVGA分辨率(800times480像素)ClearBlackAMOLED材质的康宁大猩猩(Corning(
诺基亚900如何移动光标诺基亚900移动光标方法很简单,点击并按住文字附近的屏幕,直到显示光标。不要抬起手指,拖动光标到所需的位置。要将光标移至下一行或下一个文字输入栏,请选择Enter键。Enter键的
诺基亚900如何删除字符诺基亚900删除字符方法很简单,选择退格键即可。诺基亚900搭载4。3英寸WVGA分辨率(800times480像素)ClearBlackAMOLED材质的康宁大猩猩(Cornin