【问题标题】:Formula to decide if cell is visible确定单元格是否可见的公式
【发布时间】:2020-03-12 02:04:05
【问题描述】:

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

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

我正在寻找类似的东西:

=ISVISIBLE(A1)

是否可以组合实现该功能的公式?

【问题讨论】:

  • 当前在屏幕上可见吗?或者不在隐藏的列/行中?
  • 可见为不在隐藏的行/列中。我澄清了问题
  • 这个在网上很容易搜到...不过不管怎样平谷的回答都很好

标签: excel


【解决方案1】:

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

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

从这个post... 那就是你的答案。不能在表格之外使用它主要意味着您的数据应该存储在表格中,而不是该公式存在严重限制。

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

【讨论】:

    【解决方案2】:

    对此没有内置公式。但是,您可以使用 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) 以获取结果。

    【讨论】:

    • 我想使用禁用宏的工作簿,所以如果有非 vba 解决方案我真的很想
    【解决方案3】:

    由于我花费了比我想承认的更多的时间来寻找适合我的非 VBA 解决方案(因为启用宏的工作簿在此企业环境中不是一个可行的选择),我想分享我遇到了以下答案,以便它可以帮助加快寻找下一个可怜的灵魂。

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

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

    这是我完全抄袭的地方: Count Visible Columns

    【讨论】:

      猜你喜欢
      • 2011-03-20
      • 2016-05-14
      • 2016-02-07
      • 2013-10-04
      • 1970-01-01
      • 2020-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多