函数名:ETMatch
功能:
该函数功能为,利用缓存,提升数据查找匹配效率。通过对比VLOOKUP函数,该函数提升数据匹配效率百倍左右。需要注意该函数适合大体量数据匹配场合,如果数据体量很小,建议使用该函数进行数据查找和匹配。
该函数支持一对多匹配,就是原始数据之中有多少条记录,该函数均能够提取出来,多条记录结果以数组方式返回。
参数:
matchValue:第一个参数,查找目标值
dataRange:第二个参数,待查找的数据区域,该参数只能够是Excel选区,不能够是其他函数返回数组,需要注意该参数必须为绝对引用。
col_index_num:第三个参数,提取数据列号;
new-range:第四个参数,dataRange选区数据有无刷新,如果数据有刷新,将该参数设置为TRUE,该函数就会刷新缓存,该参数默认false,表示不刷新数据;
样例演示
下图样例数据,左边数据使用ETGetUUID函数模拟生成一百万条记录数据,如果使用VLOOKUP函数进行匹配函数匹配效率较低,使用ETMatch函数,百万条记录只需要几十秒就能够完成。
演示案例数据完整公式如下
演示案例完整公式:=ETMatch(D6,$A$2:$B$258,2)
因为该函数支持多匹配,配合counta函数能够实现countifs函数效果,而且统计函数效率也是百倍提升。不过需要注意因为counta函数如果是错误值,该函数统计结果也是1。所以统计公式需要进行改进,
演示案例完整公式:=IFERROR(COUNTA(ETMatch(G6,$A$2:$B$258,2)),0)
注意事项:
- 该函数结果为数组数据,365 Excel支持动态数组可以显示所有数据,低版本Excel使用数组公式后(ctrl shift enter 组合键)使用EFunction菜单功能重构数组;
- 第二个参数必须绝对引用,如果不绝对引用,在公式填充时,很可能导致内存溢出;
- 第四个参数,建议保持默认不填,如果源数据有更新,可以选择一个公式,将第四个参数改为true,注意如果true后,绝对禁止批量填充,不然公式效率极其慢
- 该函数只能够应用于,大体量数据匹配场合,小体量数据匹配,建议使用VLOOKUP函数。
EFunction高级函数插件下载-Excel版
1 文件 78 MB