Excel:使用模糊查找时的内存限制

时间:2017-03-16 16:14:42

标签: excel

(Excel 2016 32位)

我使用模糊查找来识别我系统中的重复客户。我使用了3个字段:Address1,Address2和Address3。我的表包含90000行。匹配数设置为5,相似阈值为90%。当大约79000行完成时,模糊查找最终会达到Excel内存限制。有时它会出错,有时则会崩溃。

有什么想法可以避免达到Excel内存限制?

4 个答案:

答案 0 :(得分:3)

似乎这个问题可能是将结果插入Excel'Table'对象时出现错误的症状(其他明智的方法是在vba中称为list对象)。症状,因为加载项会产生更多匹配,进程消耗的内存会稳步攀升,直到(在32位系统上)达到2GB内存限制并且抛出“内存不足异常”。预期的行为应该是一旦生成匹配,内存消耗将保持在一个恒定的水平。

我的解决方案不使用Excel'Table'对象作为模糊查找输出,最安全的选项是空白工作表。

答案 1 :(得分:2)

我发现了一个简单的解决方法,而不使用SQL。

在运行模糊查找之前创建输出表!

真的很简单。创建一个表格,格式化列,选择单元格(2,1),然后运行模糊查找。

答案 2 :(得分:0)

在没有任何运气的情况下搜索论坛后,我不断深入挖掘并相信已找到问题所在。

当您转换列或创建表时,如果您选择整个列,它会为该表的整列创建一个表对象,然后当您运行查找时,它会进入无休止的搜索,因为它正在尝试将每个值与另一个表中的每个值匹配。

<强>解决方案: 将列转换为表格(Ctrl + L)时,请勿在电子表格结束前选择整列。看图片。

IMG

答案 3 :(得分:0)

我遇到同样的问题,需要花很多时间才能完成。问题是我的表定义。我选择了整个列,而不是只选择数据行。仅选择数据创建表后,模糊查找要快得多。希望这可以帮助其他人寻找解决方案