我有一个公式,它有很多移动的部分,从非常大的数据集中获取数据。它是如此广泛,它是该死的崩溃我的电脑附近,我没有添加帮助列或编辑源数据的选项,我宁愿不必手动选择使用的单元格,因为它们不断被添加。
有没有一个好的方法,使这个运行更快,我只是错过了?
公式:=IFERROR(TAKE(TAKE(SORT(FILTER('TELEDATA IN PROGRESS (9.22.23)'!E:T,('TELEDATA IN PROGRESS (9.22.23)'!G:G=BI2)*('TELEDATA IN PROGRESS (9.22.23)'!B:B="MOL ")*('TELEDATA IN PROGRESS (9.22.23)'!U:U>0)),16,-1,),1),,1),"")
1条答案
按热度按时间wb1gzix01#
你可以尝试下一个建议。
首先,您可以将2个嵌套的
TAKE
替换为INDEX
,以获得左上角的项(这不是性能影响):字符串
其次,考虑到数据源名称,我可以假设你在
T
列中搜索max number。在这种情况下,你可以使用XLOOKUP
和MAXIFS
函数,而不是IFERROR
,SORT
和FILTER
组合:型
FILTER
和SORT
创建了中间数组,从而降低了性能。SORT
在最好的情况下执行时间为O(n*log(n)),而MAX
或MIN
和XLOOKUP
(在最差的情况下)每个都是O(n),总共是O(2n)。当然,您需要限制范围(不要引用整个列)。