我可以使用公式来确定单元格是否不在隐藏的行/列中吗?
我知道有相关的公式,如小计和汇总,但我不太了解这些。而小计似乎只关心过滤的行,而不是关于隐藏的行。
我正在寻找类似的东西:
=ISVISIBLE(A1)
是否可以组合达到该功能的公式?
答案 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