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

(Excel 2016 32位)

我正在使用模糊查找来识别我的系统中有重复的客户。 我使用3个字段:地址1,地址2和地址3。 我的表格由90000行组成。 匹配数量设置为5,相似性阈值为90%。 大约79000行完成时,模糊查找最终达到Excel内存限制。 有时会出现错误和其他时间崩溃。

任何想法,我可以做什么,以避免触及Excel内存限制?

看起来这个问题可能是在将结果插入到Excel表格对象中时出现的一个错误的症状(其他方面也称为vba中的列表对象)。 症状,作为插件使更多的匹配,进程消耗的内存稳步攀升,直到(在一个32位系统)2GB的内存限制命中,并出现“内存exception”。 预期的行为应该是让内存消耗在匹配产生后保持在恒定的水平。

解决scheme在我的情况下,不要使用Excel的“表”对象作为模糊查找输出,最安全的选项将是一个空白的工作表。

我发现了一个简单的修复,而不使用SQL。

在运行模糊查找之前创build一个输出表!

这真的很简单。 创build一个表,格式化你的列,selectCells(2,1),然后运行Fuzzy Lookup。

在没有任何运气的情况下search论坛后,我继续深入挖掘,并相信找出问题所在。

在转换列或创build表时,如果要select整个列,则会为该表的整个列创build一个表对象,然后在运行查找时会进入无尽的search,因为它试图匹配每个列值与其他表中的每个值。

解决scheme:将列转换为表(Ctrl + L)时,请勿在电子表格结束之前select整个列。 看图片。

IMG