Excel: 获取非隐藏单元格的文本值

Excel: get text value of non-hidden cells

这个公式

SUBTOTAL(3,OFFSET($F,ROW($F:$F0)-ROW($F),0))

为隐藏的单元格提供数组 0,为未隐藏的单元格提供 1。

我想要的是隐藏单元格的 0 或空白数组以及那些非隐藏单元格的单元格值,即文本。

什么公式可以做到这一点?

以下图片为示例。如果我通过选择 1 来过滤第 1 列。那么,只有 Apple、Pineapple 和 Banana 会出现在屏幕上。其余的将被隐藏。我需要这个数组:{"Apple","","","",Pineapple,"","Banana","",""}。

获取非隐藏单元格的文本值

试试这个数组公式 (Ctrl+Shift+Enter):

=TRANSPOSE(IF(SUBTOTAL(3,OFFSET($F,ROW($F:INDEX($F:$F0,COUNTA($F:$F0)))-ROW($F),0))=1,F5:INDEX($F:$F0,COUNTA($F:$F0)),""))

这将 return 一个数组结果:

={"Apple","","","","Pineapple","","Banana","",""}

而且,

要统计人数"Banana"

试试这个数组公式 (Ctrl+Shift+Enter):

=SUM(0+(IF(SUBTOTAL(3,OFFSET($F,ROW($F:INDEX($F:$F0,COUNTA($F:$F0)))-ROW($F),0))=1,F5:INDEX($F:$F0,COUNTA($F:$F0)),"")="Banana"))

在你的例子中 return 1

备注:

1] SUBTOTAL+OFFSET公式原来是return一行数组的结果。由于您需要列数组结果,因此在第一个公式中添加 TRANSPOSE() 以将行数组转换为列数组。

2] 第二个公式是一个计数公式,行或列数组将给出相同的结果,因此不需要 TRANSPOSE()。

这是计算可见度的替代方法 Banana:

E1 中的公式:

=SUMPRODUCT((B2:B10="Banana")*(SUBTOTAL(3,OFFSET(B2,ROW(B2:B10)-2,0))))

此答案基于 this 网站,该网站为您提供了更多背景信息,说明为什么会这样。