本文作者:office教程网

Excel统计某电话号码有多少人打过

office教程网 2024-06-17 04:31:42
后台-系统设置-扩展变量-手机广告位-内容正文顶部
摘要:

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

excel斜线表头的两种制作方法

excel斜线表头的两种制作方法 制作 Excel 表格时,时不时的会用到单斜线多斜线表头。添加斜线不难,可以直接右击单元格使用“设置单元格格式”添加单斜线或使用“插入-形状-线条”来手动添加多条斜线。 斜线添加好,内容该怎么输入呢?这个是不少同学关心的问题。 小编找到两种比较简单的办法: 一、使用文本框添加内容 单击“插入-文本框-横排垂直文本框”。 鼠标会向下的箭头状 ,拖动鼠标生成一个文本框。接着在文本框中键入表头内容。如果需要的话,还可以进行一些文本格式编辑。 文本框内容输入并编辑完成后,移动鼠标

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

Excel2007里面插入页眉和页脚超简略

Excel2007里面插入页眉和页脚超简略 最近在学习Excel2007的过程中发现在Excel2007中插入页眉和页脚较以前版本很方便直观。 相信用Excel以前某些版本中插入页眉和页脚时,对图1所示的插入页眉和页脚的对话框一定不会陌生。 图1 以Excel2003为例,在其中插入页眉和页脚就要用到上面的对话框,很是麻烦,且不能直观的看到插入的页眉和页脚,非要用打印预览才可看到页眉和页脚。 Excel2007对此功能进行了改进。想在Excel2007中插入页眉和页脚的方法有几个:其一、切换到“插入”标签

后台-系统设置-扩展变量-手机广告位-内容正文底部
未经允许不得转载:

作者:office教程网,原文地址:Excel统计某电话号码有多少人打过发布于2024-06-17 04:31:42
转载或复制请以超链接形式并注明出处 演示站

分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

留言与评论(共有 0 条评论)
   
验证码: