Excel函数确定单元格是否可见

Phr*_*ogz 17 worksheet-function conditional-formatting microsoft-excel

在条件格式中,我想检测当前单元格上方的行是隐藏还是可见。如何检测单元格是否可见?

我能想到的唯一黑客是:

  1. 创建一个包含所有1值的列。
  2. 使用类似的公式subtotal(109,c2:c2)=1(即仅在我要检查的单元格上)来确定它是可见的还是隐藏的。

有没有办法在没有显示行时必须保持可见的临时列的情况下做到这一点?


为了避免XY 问题,我想要做的是有一列是该行的类别。具有特定类别的第一个 VISIBLE 行应具有不同的样式;具有相同类别的后面的行略有不同。在 ASCII 中:

cat.   item
+AAA+  aaaa
(AAA)  bbbb
(AAA)  cccc
+BBB+  dddd
(BBB)  eeee
(BBB)  ffff
Run Code Online (Sandbox Code Playgroud)

如果我的过滤器隐藏了一行dddd话,我想与该行eeee+BBB+造型来代替。

Phr*_*ogz 16

您可以使用小计counta来查看(已知非空白)单元格是否隐藏,而不是使用另一列上的总和进行小计。例如,如果列A通常是可见的(除非该行被隐藏)

= IF( SUBTOTAL(103,A2)=1, "VISIBLE", "HIDDEN (or blank)" )
Run Code Online (Sandbox Code Playgroud)

您可以将此公式放在可能隐藏的列中,它仍然有效。

然后,在条件格式中,您可以只使用:= SUBTOTAL(103,$A2)=1来确定该行是否可见。


小智 5

作为 Phrogz 答案的附录,如果您需要检查列中的单元格是否被隐藏,请尝试以下任一方法,

条件格式

=CELL("width",TargetCell)=0
Run Code Online (Sandbox Code Playgroud)

一旦列被隐藏,这会自动更新。

公式检​​查

=IF(CELL("width",TargetCell)=0, "Cell is hidden.", "Cell is visible.")
Run Code Online (Sandbox Code Playgroud)

此公式不会自动更新,您必须通过选择菜单选项或按“F9”将 Excel 定向到“立即计算”。