作业帮 > 综合 > 作业

关于excell的统计问题

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 14:27:10
关于excell的统计问题
在我的要处理的表格里,需要累计某一列里的人数.需要说明的是,这列里的人数都是x+N+y 的形式出现的,其中x ,y表示汉字,n表示数字.
是要将n累加,数字不全是两位的.
我也在想,其实解决问题的办法就是把n掉出来,然后再累加.问题现在就是出来如何用最好的办法把n提取出来.
一、如果在所有数据里面x y 汉字的内容都一样的
例如
共有9人 9
共有5人 5
共有61人 61
共有621人 621
在新开一列里面输入:
=MID(A1,3,LEN(A1)-3)
(3表示从第三个位开始提取数字)
向下复制,对这列数求和
二、如果x的最后一个汉字和y的第一个汉字都是固定的且只出现过一次,例如:
今天有9人 9
昨天有5人 5
明天将有61人参加 61
在新开一列里面输入:
=MID(A1,SEARCH("有",A1,1)+1,SEARCH("人",A1,1)-SEARCH("有",A1,1)-1)
向下复制,对这列数求和
三、如果x y 乱七八糟的话
还在思考,想法就是使用CODE把数字提取出来,太麻烦了,不想这个了,还是用VBA方便,几行代码就解决了.
四、使用VBA,提取唯一的一组数字:
1、按ALT+F11 打开VB编辑器
2、双击左边靠上的【工程资源管理器】中的【MS Excel 对象】中的ThisWorkbook,在右边的代码窗口贴入下面的代码:
Sub 提取数字()
On Error GoTo 100 '处理出错
Application.ScreenUpdating = False '关闭屏幕更新提高运行速度
'提取数据里面唯一的一组数字
'本例是提取工作表标题为shee1的工作表A列数据里面数字,从A2单元格开始计算,把提取出来的数字放在B列,如果有需要请修改下面四列的结尾数.
Dim sheetsCaption As String:sheetsCaption = "Sheet1" '工作表标题
Dim col_1 As String:col_1 = "A" '数据列号
Dim col_2 As String:col_2 = "B" '存放结果的列号
Dim startrow As String:startrow = 2 '开始的行号
'以下不需要修改
Dim number As String
Dim i As Integer
Dim j As Integer
Dim text As String
With Sheets(sheetsCaption)
For i = startrow To .Range(col_1 & "65536").End(xlUp).Row
number = ""
For j = 1 To Len(.Range(col_1 & i))
text = Mid(.Range(col_1 & i),j,1)
If Asc(text) >= 48 And Asc(text)