如何使用Excel统计某电话号码有多少人打过

所属分类: 软件教程 / 办公软件 阅读数: 1518
收藏 0 赞 0 分享
派出所的一个朋友在调查一起案件的时候,遇到了一个如题的问题,请我帮忙。由于要保密他不能提供原始数据,只是给我谈了一下要求。目前他们通过一个嫌疑犯的通话记录,从通话记录中又列入了n个新嫌疑犯,而且也得到每个嫌疑犯的通话记录。现在就要将这些通话记录进行统计,即同一个电话号码,每个嫌疑犯打了多少次,有多少个嫌疑犯同时打过同一个号码。

  根据上述总结,Excel表如下:

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

更多精彩内容其他人还在看

PowerPoint2007中如何在形状图上面添加图片?

我们在做PPT的时候,有时候为了让画面更加美观,达到某种特别的效果,那么就要用到图片,然而要将自己的图片插入到形状,图形中,那该怎么办呢?一起来看看我是怎么做得吧
收藏 0 赞 0 分享

Word2007文档种怎么在底部插入Excel表格?

Word2007文档种怎么在底部插入Excel表格?Word文档种想出入一个完整的excel表格,而不是直接插入表格,该怎么办呢?下面我们来看看word中插入excel表格的详细教程
收藏 0 赞 0 分享

excel中isoweeknum函数有什么作用?怎么使用?

excel中isoweeknum函数有什么作用?怎么使用?很多朋友并不是很清楚,其实操作很简单的,下面小编就为大家详细介绍一下,不会的朋友可以参考本文
收藏 0 赞 0 分享

在excel中month函数有什么作用?如何使用?

在excel中month函数有什么作用?如何使用?很多朋友并不是很清楚,所以下面小编就为大家详细介绍一下,不会的朋友快快来学习吧
收藏 0 赞 0 分享

PPT怎么出入Excel电子表格?ppt插入excel表格形式数据的教程

PPT怎么出入Excel电子表格?ppt文档中插入数据,但是想直接以excel电子表格显示,该怎么办呢?下面我们来看看ppt插入excel表格形式数据的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

EXCEL怎么使用批量批阅试卷减轻教师负担?

EXCEL怎么使用批量批阅试卷减轻教师负担?每次考试批改试卷是最愁人的,很多学生,很多份试卷批完也很麻烦,而且还分为两卷,怎么才能快速的批改试卷呢?下面我们来看看EXCEL来实现批量阅卷,以减轻教师的负担的方法
收藏 0 赞 0 分享

PPT快速绘制出桨形的风车图形?

PPT快速绘制出桨形的风车图形?ppt中可以绘制很多图形,为ppt课件达到预期的效果,我们今天来教大家绘制桨形来完成风车图形的效果,详细内容请看下文图文教程,需要的朋友可以参考下
收藏 0 赞 0 分享

在excel表格中怎么进行分数排列?

刚学习excel表格的新手们,你们知道如何给数据排序吗,因为这是一个很重要的功能哦,比如你想把成绩排序,看看谁的成绩最高,谁的最低,还有给杂乱的数据按照时间排序,顿时表格就清晰了,这些都是很必要的。那么在excel表格中怎么进行分数排列?下面我们来看看吧
收藏 0 赞 0 分享

PPT中动态按钮和超链接有什么区别?该怎么设置?

PPT中动态按钮和超链接有什么区别?该怎么设置?在ppt中动态按钮和超链接是经常会用到的功能,但是他们之前有什么区别,分别该用在什么地方?下面我们来看看详细介绍
收藏 0 赞 0 分享

excel统计函数countif有什么作用?怎么使用?

excel统计函数countif有什么作用?怎么使用?很多朋友都不是很清楚,其实方法很简单的,下面小编就为大家详细介绍一下,一起来学习吧
收藏 0 赞 0 分享
查看更多