数组公式仅返回第一个值

数组公式仅返回第一个值

我正在尝试在 Excel 中使用数组函数,该公式用于返回已过滤表的值。这是我的公式:

{=INDEX(A:A,MIN(IF(SUBTOTAL(3,OFFSET(A2,ROW(A2:A31)-ROW(A2),0)),ROW(A2:A31))))}

问题是返回的值只是第一个结果,即如果过滤后第一个单元格是A9当我向下拖动公式时,它只会返回A9所有单元格中的值。这是我第一次尝试使用数组函数,所以我不知道要检查什么,我认为公式本身是正确的,但因为这是我的第一次尝试,也许我错过了一些东西。我已经按++Ctrl进行验证了。ShiftEnter

实际上,我的目标是返回符合特定条件的单元格的值,我尝试使用不同的函数,但因为它太复杂了,所以我尝试使用 Excel 内置过滤器,但因为它只隐藏了不符合条件的单元格,所以它无法与使用过滤值的其他公式一起使用。我更喜欢不太复杂或使用 VBA 的解决方案。

答案1

我之前问过同样的问题,并得到了很好的答复罗恩·科德尔

他建议使用数组和非数组公式解决方案。公式很复杂。我提供了一种非常简单、直观的方法,即使用简单的非数组公式和辅助列。

假设我们有列中的数据A。 在C2进入:

=SUBTOTAL(3,$A$2:$A2)

并向下复制:

在此处输入图片描述

辅助列是一组简单的连续值。我们现在过滤

在此处输入图片描述

助手已调整为保持简单的顺序序列!这使我们能够使用标准MATCH()/INDEX()方法来获取可见数据。在Sheet2单元格中A1进入:

=IFERROR(INDEX(Sheet1!A:A,MATCH(ROWS($1:1),Sheet1!C:C,0)),"")

并向下复制:

在此处输入图片描述

如果您不能使用辅助列,请尝试 Coderre 公式之一。

答案2

在索引前使用转置函数。或者水平返回该函数。

相关内容