如果行被隐藏,则计算string的值

我想数一下:

  • A列包含“a”
  • 包含“a”的行被隐藏。

例如:

如果行2和5(包含“a”)被隐藏,则输出应为2(不包括第3行中的可见“a”)。

在这里输入图像说明

从这里使用一个健康的部分

 =COUNTIF(A1:A5,"a")-SUMPRODUCT(--($A$1:$A$5="a"),SUBTOTAL(103,OFFSET(A1,ROW($A$1:$A$5)-ROW(A1),0))) 

这只会计算隐藏的行数。

 Sub SumInvisible() For i = 1 To 10 If Range("A" & i).EntireRow.Hidden = True Then If Range("A" & i).value = "a" then Var = Var + 1 End if End If Next i Range("B" & i).Value = Var End Sub 

在VBA中,我有一个自定义函数如下:

 Public Function IsCellHidden(vRange As Range) As Boolean 'Check if a cell is hidden Dim vHidden As Boolean If vRange.Rows(1).Hidden Or vRange.Columns(1).Hidden Then vHidden = True IsCellHidden = vHidden End Function 

然后我把它放在列A的相应单元格的B列,所以B1例如是=IsCellHidden(A1) ,然后在C6我会有=COUNTIFS(A1:A10,"A",B1:B10,TRUE)

最简单的方法:

1)添加一个帮手列

=SUBTOTAL(103, A2)旁边的=SUBTOTAL(103, A2) ,对于A3,它变成(103,A3)等等

2)然后使用

=COUNTIFS(A2:A5,"a",B2:B5,"=0")