本帖最后由 glhfgtd 于 2014-9-17 15:24 编辑
工作上需要我在AP表中找出相匹配的EP表的内容。由于数据量的庞大(3万多行),我用的函数公式引用单元格逐个匹配的方法耗时费力,有时甚至导致Excel无反应重启。所以求教这里的VBA能手帮忙编写一个通过VBA数组在内存中计算匹配的代码程序来解决这个问题。(当然,若有更快速效率的方法,求之不得!!!) 匹配规则: 1)根据AP表A、B、C列的字符串和E列的金额在EP表中进行查询匹配,若在 EP表B列中查找到同时含有AP表A、B、C列的字符串并且EP表D列金额等于AP表E列的金额,(请注意: 因为记录中含有重复数据,所以匹配不是一一对应关系)那么请在AP表的G列返回EP表A列相对应的Key值(重复数据要是第一次匹配到,则返回第一个匹配到的A列Key值,若是第二次匹配到,则返回第二个匹配到的A列Key值… 已匹配过的记录不能再次进行匹配,要是我这里解释的不明白请参见我在AP表I2和J2使用的函数公式)。 2)若规则(1)没有匹配到任何记录,接下来根据AP表D列的号码和E列的金额在EP表中进行查询匹配。若在EP表C列和D列同时匹配到AP表D列、E列的内容,那么请在AP表的G列返回相应的EP表A列的Key值 。(同样,已匹配过的记录不能再次进行匹配) 3)若以上规则(1)、(2)均没能找到其匹配对应项,则在AP表的G列返回空值 。 |