确定细胞是否可见的公式

时间:2015-02-16 08:34:01

标签: excel

我可以使用公式来确定单元格是否不在隐藏的行/列中吗?

我知道有相关的公式,如小计和汇总,但我不太了解这些。而小计似乎只关心过滤的行,而不是关于隐藏的行。

我正在寻找类似的东西:

=ISVISIBLE(A1)

是否可以组合达到该功能的公式?

3 个答案:

答案 0 :(得分:4)

此处没有内置公式。但是,您可以使用VBA /编写自己的函数来实现此目的。

Function isvisible(cellname As String)
    isvisible = Not (Worksheets("Sheet1").Range(cellname).EntireColumn.Hidden Or Worksheets("Sheet1").Range(cellname).EntireRow.Hidden)
End Function

然后,您可以在单元格中键入=isvisible("A1")以获得结果。

如果你不喜欢双引号,这是另一种方式:

Function isvisible(rng As Range)
    isvisible = Not (rng.EntireColumn.Hidden Or rng.EntireRow.Hidden)
End Function

然后,您可以在单元格中键入=isvisible(A1)以获得结果。

答案 1 :(得分:3)

如果通过subtotal()引用此选项:

= IF( SUBTOTAL(103,A2)=1, "VISIBLE", "HIDDEN (or blank)" )

从这post ...然后那是你的答案。不能在桌子外使用它主要意味着你的数据应该存储在一个表格中,而不是那个公式的一个关键限制。

我想说 - 为您的数据创建表格。无论您是否使用VBA,使用表格总是值得的。我还没有遇到一个工作簿,使用表而不是原始范围不会更好。即使它是一个小文档,它最终会更快。

答案 2 :(得分:1)

由于我花了很多时间而不是想在更广阔的范围内寻找对我有用的非VBA解决方案(因为启用宏的工作簿在该企业环境中不是可行的选择),所以我想分享以下是我遇到的答案,它可以帮助加快对下一个可怜灵魂的搜索。

如果引用的单元格列可见,则以下公式将返回1,否则将返回0。删除公式的N()部分将返回布尔结果(TRUE / FALSE),而不是二进制(1/0)。

=N(CELL("width",A1)>0)

这是我完全from窃的来源: Count Visible Columns