我有一个 12x18 Excel 范围,它根据 12x18 范围的页面、行和列标题(分别为标准 1、标准 2 和标准 3)从 823x20 工作表(Results!$A:$T
)中提取数据
={INDEX(Results!$A:$T,
MATCH(1, (criterion1 = Results!$A:$A) * (criterion2 = Results!$B:$B), 0),
MATCH(criterion3, Results!$A$1:$T$1, 0))}
正如您所看到的,它并没有那么多数据,但是当我更改页眉时,我的计算机(2 GHz Intel Xeon 和 24 GB RAM)需要大约一分钟来更新 216 (12x18) 索引搜索,而我' m 甚至还没有完成创建搜索的一半。
在我的项目早期,这些搜索只有一个标准,所以我使用VLOOKUP()
了,结果很快就出来了。但是,现在我需要根据三个标准查找值,而上面的函数是我设法完成此任务的最佳方法。然而,它似乎是我得到的长计算时间的原因。所以我的问题是:如何优化VLOOKUP()
多个标准?我应该调整INDEX(1, MATCH()*MATCH(), MATCH())
还是有更快的方法来做到这一点?
这是 12x18 索引搜索的示例(分支名称是最终用户能够更改的唯一变量):
它搜索的 823x20 工作表(A 列实际上没有合并):