关于excell的统计问题在我的要处理的表格里,需要累计某一列里的人数.需要说明的是,这列里的人数都是x+N+y 的形式
1个回答

一、如果在所有数据里面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)