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

(0)

相关推荐

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

    派出所的一个朋友在调查一起案件的时候,遇到了一个如题的问题,请我帮忙。由于要保密他不能提供原始数据,只是给我谈了一下要求。目前他们通过一个嫌疑犯的通话记录,从通话记录中又列入了n个新嫌疑犯,而且也得到 ...

  • excel如何快速计算有多少个打勾的单元格

    在用excel统计数据时,有时会在单元格内打勾,即添加一个对号.这里介绍一种excel如何快速计算有多少个打勾的单元格方法,以供参考. (注:用本方法之前最好复制备份一个文档,以避免误操作修改表格内容 ...

  • 如何使用excel统计条件个数

    如何使用excel统计条件个数?熟练使用excel的朋友可能很清楚怎么做,但也有很多朋友不知道的,下面我们来操作一下. 操作方法 01 打开excel,并输入数据. 02 假设我们需要统计A列里的数据 ...

  • 如何用Excel统计某字符或关键字出现次数

    excel为我们解决了很多财务报表上的问题,极大地提高了我们的工作效率,节省了工作时间.并且能够保质保量的完成繁琐的财务工作.不仅在财务应用上,在学生时代,我们也会在平常的考试中使用到excel办公软 ...

  • QQ群每个等级有多少人的计算方法!

    群内成员等级数和每个等级内有多少人是根据群内有积分成员的数量不同而变化的,所以每个群拥有的等级数不一样,每个等级内的成员数量也不一样.具体计算方法请见下表: 注: 1.如计算结果有小数点,只取整数; ...

  • excel如何设置成多人同时编辑

    excel 如何设置成多人同时编辑的方法: 设置共享步骤1:在excel功能区点击"审阅"切换审阅选项,点击"共享工作簿",如果弹出下面第二个图片对话框,则需要 ...

  • 使用excel统计满足给定条件的总数

    下面就为大家介绍满足给定条件的数据进行合计统计,一起来看看吧! 方法/步骤 首先我们打开一个工作样表作为例子. 例子中我们需要统计的是所有能够满足实发工资能够超过3000的员工的总数. 我们把判断的工 ...

  • excel统计在相同型号中数量最多的

    excel是进行数据处理的首选工具,在进行数据的选择以及数据排列和对比的时候使用尤为重要.本文以excel的不同型号不同数量为例,为大家介绍如何进行excel的使用. 步骤 1.本文以物料A.B.C为 ...

  • 用excel统计学生成绩的具体操作步骤

    在我们日常生活工作中,难免会用到数据处理软件,但是时间限制,我们可以把数据导入excel来处理,这样就可以简单方便很多,那么接下来就跟小编一起来看一下具体的加法运算步骤吧.具体如下:1. 首先打开ex ...