如果行被隐藏,则计算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")