读取Excel进行统计

fanwanping 2004-10-25 05:52:20
读取Excel中的数据,并对某列进行统计,例如:根据年龄,统计出每个年龄有多少人,形成表格形式.

元数据:
性别 职业 年龄
男 a 20
男 a 31
男 a 32
男 a 27
...............

想要的结果:

年龄:20 21 22 23 24 25 26 27 28 29 30 31
人数:3 4 5 6 9 11 12 11 13 14 15 16

因为数据量很大,现在想通过程序实现,除了,一条一条的判断统计有没有更好的办法?
...全文
154 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jasminetea 2004-10-28
  • 打赏
  • 举报
回复
可以让系统为你的列命名,F1,F2,F3,F4.....但不能用DRIVER={Microsoft Excel Driver (*.xls),
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & strSourceFile & ";Extended Properties=""Excel 8.0;HDR=NO;"""
.Open
End With
HDR=NO把默认的列名关掉,这样就可以用F1,F2来引用和排序了!
vansoft 2004-10-27
  • 打赏
  • 举报
回复
EXCEL本身的功能就能实现。

I服了U!

交流MSN:van_flf@hotmail.com
arden1019 2004-10-27
  • 打赏
  • 举报
回复
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Sheet1!R1C1:R10C3").CreatePivotTable TableDestination:="", TableName:= _
"数据透视表2", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
Charts.Add
ActiveChart.Location Where:=xlLocationAsNewSheet

建立一个数据透视表可能需要上面的条件,不明白的参数到excel的vba对象浏览器或帮助中查看一下。
arden1019 2004-10-27
  • 打赏
  • 举报
回复
让问题简单些的话,你试试写一段数据透视表的vba代码。
fanwanping 2004-10-27
  • 打赏
  • 举报
回复
上面只是举的例子,有最少四个字段需要统计的!年龄,级别,部门之类的!还要复合检索,比如说:
年龄20,级别是1的多少,级别是2的多少,....
年龄20的,A部门多少,部门多少......
我想要把统计好的数据放到一个Worksheet 里,然后另一个Worksheet的二维图表直接引用统计好的接过
每文件要统计6个图,四个表,一共168个文件,我要用程序实现的,大家说简单可能没理解我的意思吧?
一个一个统计,我也会......
flyingZFX 2004-10-27
  • 打赏
  • 举报
回复
是呀,楼上说的对,,

Excel本身就有这个功能,呵呵,,楼主应该找到Excel的书看看呀,
fanwanping 2004-10-26
  • 打赏
  • 举报
回复
不是的,我想把统计好的数据写到另一个Excel里,然后生成二维的曲线图,因为有一百多个相同格式的文件,所以想程序实现
arden1019 2004-10-26
  • 打赏
  • 举报
回复
你是要读到数据库么?
arden1019 2004-10-26
  • 打赏
  • 举报
回复
excel的临时表
fanwanping 2004-10-26
  • 打赏
  • 举报
回复
我现在用的方法是:把Excel做为数据源"DRIVER={Microsoft Excel Driver (*.xls)};DriverId=790;ReadOnly=True;DBQ=" & strSourceFile & ";"
把数据取出来没问题,但因为Excel表头有好多合并单元格,所以不知道具体的列名,所以写SQL时:只能写
SELECT * FROM [CA$A4:Z2118] b不能写GROUP BY和ORDER BY
fanwanping 2004-10-26
  • 打赏
  • 举报
回复
To: arden1019(暮眠)
什么样的临时表,是Excel中的?不让用数据库的..........能把你的思路在详细说一下吗?
arden1019 2004-10-26
  • 打赏
  • 举报
回复
建议你做一个零时表,将年龄列排序,然后再统计方便一些。

5,139

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧