Excel - 次要过程需要极大的Vlookup连接

时间:2012-04-11 15:19:00

标签: excel excel-formula

我有很多excel数据在32个文档中以相同的格式列出信息。合计总数将超过600万行。

我有另一个包含几千行的文档。本新文件中C,E和L栏的CONCATENTATE可与任何其他32份文件中D,F和N栏的CONCATENATE相同。

我想找到相同的信息,并从每个较大的文档中获取小文档中每一行的漏洞。

目前,这要求我连接每个较大文档的信息,删除所有空格和标点符号,并使用32 IFERROR计算,每个计算包含一个VLOOKUP。最后一个整晚都是。所有其他人都撞坏了电脑。

这必须是一个更好的方法吗?

EG。

小文件:

TITLE1 | TITLE2 | TITLE3

更大的文件(全部32个)

FACT1 | FACT2 | FACT3 | TITLE1 | TITLE2 | FACT4 | TITLE3

如果小文档的标题1,2和3的串联在较大文档中的标题1,2和3(删除所有空格和标点符号)的任何连接中找到相同的信息。我想从较大的文档中复制该行的所有信息,包括较小文档中信息行旁边的标题和事实。

3 个答案:

答案 0 :(得分:2)

艾依依。 Excel不是用于做这样的事情。这只是错误的工具。因此,假设您坚持使用它,我会尝试创建一个Access数据库,链接您需要的每个电子表格,然后编写查询。我不完全清楚您要对匹配的信息做什么,但您可以将其导出到新的电子表格,或将电子表格链接到该查询。

在Access(2007+)中,转到“外部数据”选项卡,单击“导入”部分中的“Excel”,然后选择“链接”。如果仍然太慢,则需要复制电子表格并执行查询。

答案 1 :(得分:1)

在数据库而不是Excel中要好得多,但要使其在Excel中高效工作,您需要使用VLOOKUP或MATCH的二进制搜索选项(排序近似匹配)。这比线性(未排序)搜索快几个数量级:

1.在32张纸和小纸张上创建连接列以进行连接等 2.使用连接列
对32张纸上的数据进行排序 3.使用带有IF的双重VLOOKUP将近似匹配转换为完全匹配,如下所示

=IF(VLOOKUP(PartNumber,PartsList,1,TRUE)=PartNumber, VLOOKUP(PartNumber,PartsList,4,TRUE), “Missing”)


http://fastexcel.wordpress.com/2012/03/29/vlookup-tricks-why-2-vlookups-are-better-than-1-vlookup/ 有关此公式的更详细解释。

答案 2 :(得分:0)

如果有结构,您知道需要搜索哪个工作表,您可以看到INDIRECT功能是否可以帮助您。否则,我建议您导入数据库(如Access)中的数据,然后查询您的数据。