本帖最后由 lunzi 于 2014-6-10 12:30 编辑
楼主的日常工作,就是和各种Excel表格打交道,也习惯了用Excel处理、统计各种数据。
话说,今天遇到一个数据表(表一),内容很简单,就5列数据。但数据量狂大,约480万条。当然,这个表是CSV格式的。最新版的excel2013最多支持1048576行数据。
表一
表二
要做的工作是,从这个表中筛选出部分数据,筛选依据是根据另外一张表(表二),筛选条件是:“表1D列的内容,存在于表2B列的内容中”用习惯excel,第一步想到的是Vlookup。如果数据量不大,写一个公式,根据查询结果在做一次筛选,就可以将需要的数据提取出来。 - =VLOOKUP(D2,'表二'!$B:$B,1,FALSE)
复制代码
但用excel处理数据,遇到的问题是:
1、数据表太大,Excel无法打开;当然可以将数据表拆分后,通过Excel再处理
2、数据量大,Vlookup效率太低,很容易造成excel假死。
怎么办呢?实际上,处理大数据,本来就不是Excel的本职工作。这次,我们借用Access+SQL查询,分分钟就可以搞定。步骤如下:
1、将两个数据表导入到Access中
2、建立一个SQL查询,输入语句:
- SELECT * FROM 表1 WHERE [EXT_OID] In (select [ne_dn] from 表2)
复制代码 3、将查询结果导出为Excel文件,这就是筛选后的结果。可以根据需要,在Excel中再进行其他的统计工作了
选对了方法,就这么简单。
|