我正在使用这个公式=IF(B24="","",IFERROR(INDEX(Sheet3!$C$3:$EE$3,,MIN(IF(Sheet3!$C$4:$EE$23=(Sheet2!C24&$K$18),COLUMN(Sheet3!$C:$EE)))-2),"NF"))
在数组的第一行返回一个单元格值——在这种情况下是一个日期。
搜索条件是唯一项目编号和项目的 2 位状态字母数字代码的组合。该数组由 23 行组成,其中找到了唯一数字的组合,每个数字都有不同的状态代码。
所以本质上,我正在构建一个过滤的项目状态仪表板,它返回链接到相关项目状态的日期。
上面的代码灵感来自 ( LINK ),它使用非常相似的布局,但它使用与邮政编码相关联的城镇郊区,而不是项目编号和状态代码。该公式效果很好(虽然,没有作为数组公式输入),但我在工作表中没有一个公式,我有 3 300 次出现这个公式。
当用户更改过滤器时问题就出现了 - Excel 重新计算整个仪表板并且需要 2 到 5 分钟才能运行。您在设置过滤器后点击了退出按钮并取消了计算,但 Excel 几秒钟后才重新开始计算。之后,Excel 的反应迟缓,几乎无法使用。是的-我们的硬件很弱...
我也尝试了 XLOOKUP,但无法将“lookup_array”设置为数组(Sheet3!$C$4:$EE$23
),因为它与“return-array”()不匹配。Sheet3!$C$3:$EE$3
将查找数组与&
作品连接起来,但是你必须这样做对于所有 23 行,再次将其乘以 3 300。
我想过创建一个UDF,但是每次Excel在过滤后重新计算时仍然会调用该函数...... 3 300调用......
关于如何使 INDEX 版本运行得更快或使 XLOOKUP 接受 lookup_array 以Sheet3!$C$4:$EE$23
希望它运行得更快的任何想法?
谢谢!