加速 VLOOKUP
Speeding up VLOOKUP
我有以下公式:
=VLOOKUP(VLOOKUP(A1,[Clients]Sales!$B:$C,2,0),[Ledger]Sheet1!$G:$H,2,0)
这是可行的,但我有超过 10 万行数据,提取所有结果需要几分钟时间。
可以加速吗?
VBA 是最快的选择吗?
没有样本数据很难完全回答您的问题,但我认为这就是您要找的:How to optimize vlookup for high search count ? (alternatives to VLOOKUP)
如果您不熟悉 VBA,我肯定会考虑使用 INDEX-MATCH。
希望对您有所帮助!
我想您会想要使用索引匹配。它是一对函数,可以复制vlookup等等,但是比vlookup快很多。由于这个原因,我几乎不再使用 vookup。
我想你想要的看起来像下面这样。没有看到你的工作簿就没有承诺。
=index([Ledger]Sheet1!$H:$H,match(index([Clients]Sales!$C:$C,match(A1,[Clients]Sales!$B:$B,0)),[Ledger]Sheet1!$G:$G,0))
解释是索引从特定列中提取第 n 个项目。匹配找到 n 恰好是什么。
我有以下公式:
=VLOOKUP(VLOOKUP(A1,[Clients]Sales!$B:$C,2,0),[Ledger]Sheet1!$G:$H,2,0)
这是可行的,但我有超过 10 万行数据,提取所有结果需要几分钟时间。
可以加速吗?
VBA 是最快的选择吗?
没有样本数据很难完全回答您的问题,但我认为这就是您要找的:How to optimize vlookup for high search count ? (alternatives to VLOOKUP)
如果您不熟悉 VBA,我肯定会考虑使用 INDEX-MATCH。
希望对您有所帮助!
我想您会想要使用索引匹配。它是一对函数,可以复制vlookup等等,但是比vlookup快很多。由于这个原因,我几乎不再使用 vookup。
我想你想要的看起来像下面这样。没有看到你的工作簿就没有承诺。
=index([Ledger]Sheet1!$H:$H,match(index([Clients]Sales!$C:$C,match(A1,[Clients]Sales!$B:$B,0)),[Ledger]Sheet1!$G:$G,0))
解释是索引从特定列中提取第 n 个项目。匹配找到 n 恰好是什么。