有人可以帮我将这个数组公式改为普通公式吗?

有人可以帮我将这个数组公式改为普通公式吗?

我在使用此公式的文件速度方面遇到了问题。

{=IFERROR(INDEX(Query1[COGSDetailSKU.RecipeCode], SMALL(IF(($B$1=Query1[COGSDetailSKU.SKUName]), MATCH(ROW(Query1[COGSDetailSKU.SKUName]), ROW(Query1[COGSDetailSKU.SKUName])), ""), ROWS($A$1:B2))), "-")} 

2 个问题: - 是否可以将其更改为仅删除花括号的普通公式?此更改是否会使其以相同的方式工作? - 是否可以重新创建具有上述公式功能的公式?

谢谢!

答案1

  1. 仅删除旧版本中的花括号(而不是最新版本)将无法使公式起作用。它是一个数组公式,与旧版本一样,需要使用 Ctrl-Shift-Enter 将其强制转换为数组公式。最新版本不再需要使用 Ctrl-Shift-Enter。

  2. 我们可以使用不同类型的数组公式,一种原生的、不需要使用 CSE 的公式。AGGREGATE 是一个自然的数组公式,幸运的是它有一个SMALL版本:

=IFERROR(INDEX(Query1[COGSDetailSKU.RecipeCode],AGGREGATE(15,7,(ROW(Query1[COGSDetailSKU.SKUName])-ROW(Query1[#Headers]))/($B$1=Query1[COGSDetailSKU.SKUName]),ROW(A1))), "-")

此公式不再需要使用 CSE,因此不会放置花括号。

如果拥有最新的 Excel 并可以访问新的动态数组公式,则可以使用 FILTER:

=FILTER(Query1[COGSDetailSKU.RecipeCode],$B$1=Query1[COGSDetailSKU.SKUName])

将其放在第一个单元格中,Excel 将自动显示结果。

相关内容