我有一个超过1,000,000行的excel表,我需要执行一些vlookups / countif语句。我应该在包含所有数据的单张纸上运行我的VB宏,还是将数据在单独的纸张上分成50,000个增量,然后在每张纸上运行宏可以节省大量时间?那里有一个方程式可以帮助我做出这个决定吗?
感谢您的帮助。
这是我计划使用的VB,(虽然我更喜欢一般的答案,如果有的话,我可以在excel处理这些大型数据库提取时应用):
Sub Find_Space_then_Compare()
'
' Finds the Space in the Key, Extracts Character after, and looks for match
in Sample2 sheet
ActiveCell.FormulaR1C1 = "=MID(RC[-1],FIND("" "",RC[-1])+1,256)"
Range("B2").Select
Selection.AutoFill Destination:=Range("B2:B100")
Range("B2:B100").Select
Range("C2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Sample2!R81C3:R121C3,1)"
Range("C2").Select
Selection.AutoFill Destination:=Range("C2:C100")
Range("C2:C100").Select
End Sub
答案 0 :(得分:1)
这是一个非常可怕的如此庞大的数据库,现在我想建议将您的数据库分成几个部分并应用公式。以下是2件的例子。
=IF(NOT(ISNA(VLOOKUP(A1,data1,2,FALSE))),VLOOKUP(A1,data1,2,FALSE),IF(ISNA(VLOOKUP(A1,data2,2,FALSE)),"No Match",VLOOKUP(A1,data2,2,FALSE)))