如何使用Excel统计某电话号码有多少人打过
作者:king发布时间:2023-08-22分类:办公软件浏览:59
导读: 派出所的一个朋友在调查一起案件的时候,遇到了一个如题的问题,请我帮忙。由于要保密他不能提供原始数据[原始数据:通常认为数据与信息的区别在于:信息是经过加工处理之后的数据,而...
派出所的一个朋友在调查一起案件的时候,遇到了一个如题的问题,请我帮忙。由于要保密他不能提供原始数据[原始数据:通常认为数据与信息的区别在于:信息是经过加工处理之后的数据,而数据则是未经加工的数据。],只是给我谈了一下要求。目前他们通过一个嫌疑犯[嫌疑犯是由Ivan Boeckmans,Guy Lee Thys执导的爱情片,是Gene Bervoets,Karlijn Sileghem,Ellen Ten Damme,Daan Stuyven -xianyifan]的通话记录[指固定电话用户、移动电话用户发起的主叫通话、被叫通话、主叫短信、被叫短信、漫游通话等通话行为在运营商交换机里记录的各种信息。],从通话记录中又列入了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 Loop86%的科技爱好者也看的内容:小米电脑刷机教程?12123哪里可以查看考试成绩?老式电脑怎么升级系统?太极生两仪两仪生四象四象生八卦是什么意思?我的主版i845G-w83627想装个显卡但没有AGP显卡插口只有3个PCI插口显卡能不能装PCI的先卡呢?为什么电脑锁屏壁纸变成了广告?上班不用打卡怎么记录加班?显卡铜管可以水洗吗? 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
- 上一篇:用Exce怎么l做个工程倒计时牌
- 下一篇:word文档如何添加多级列表并自定义样式