2015-03-03 72 views
0

我正在处理包含两列(旧URL和新URL)的Excel文件。但它包含大约20,000行。如何优化速度excel 2007(±20,000行)

而且我有一个包含需要在大±20000行要导入的文件约400旧/新的URL另一个文件。

我必须做各种处理,如: - 查找所有重复行(相同的两列不止一次......)。该功能将出现在列中,每次添加1行以检查该文件是否已存在于该文件中时,运行该功能将会很好。

请注意,我已将工作表转换为表格。现在

2个问题:

1)I应该做某种VLOOKUP从±20000行片和±400行片或VBA?我不知道这样做的最佳方式是什么(即:如果±400行表中的那行不在±20000行表中,请将其添加...)。我应该使用vlookups还是使用VBA填充数组(速度方面)?如果我使用vlookup,确实可以将vlookup函数放在工作表中并在每行中引用它,而不是直接在每行中放置一个vlookup函数?

2)如何优化20,000行的表,因为现在,我想排序或筛选每一次,它需要一个永恒重绘,并冻结我的电脑该时间!

感谢您的帮助。

回答

0

首先要从需要添加的400行的表中省略这些模糊,使用COUNTIFS公式对大表进行排序,然后按该值进行排序,并且只将该值复制到< 1(或错误)。

其次,我可能会做同样的事情在大板,但引用本身,以上1的值什么是欺骗。

最后,20,000行表中是否有公式?我可以在A1:A20,000范围内设置一个“1”的20,000行表格,并且对它做任何事情都会非常快。这一切都归结到你在那里有什么样的数据,你可以做些什么来减少它的系统上的负载(即转换公式的值,如果他们不再需要计算)

0

Excel 2007中有一个内置的功能和VBA您可以使用您的具体情况:Range.RemoveDuplicates数据选项卡 - >数据工具组 - >删除重复

例如数据:
Sample_Before
点击删除重复键:
RemoveDuplicateButton
RemoveDuplicatePrompt
Results
而你完成了!
Sample_After

的VBA当量是:

ActiveSheet.Range("$A$1:$B$10").RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes 

注1 & 2并不意味着列甲& B.它表示所选范围的列。

如果您的工作表仅包含2列,则可以使用UsedRange代替。