如何总结只在Excel中的那些行没有被滤除?
我使用SUM(B1..B20)
公式来对列进行求和,但是当我通过相邻列过滤数据时,总和不会更新以仅反映那些未被滤除的行。 如何做到这一点?
您需要使用SUBTOTALfunction。 SUBTOTAL函数忽略被filter排除的行。
公式看起来像这样:
=SUBTOTAL(9,B1:B20)
function号码9告诉它在数据范围B1:B20上使用SUMfunction。
如果您通过隐藏行来“ 过滤 ”,则函数编号应该更新为109 。
=SUBTOTAL(109,B1:B20)
函数编号109也用于SUM函数,但隐藏的行被忽略。
如果您没有使用自动filter(即您有手动隐藏的行),则需要使用AGGREGATE
函数而不是SUBTOTAL
。
当您使用自动筛选器来筛选结果时,Excel甚至不会费心去隐藏它们:它只是将行的高度设置为零(至less到2003年,不确定是在2007年)。
所以下面的自定义函数应该给你一个启动器来做你想做的事情(用整数testing,还没有玩过其他的东西):
Function SumVis(r As Range) Dim cell As Excel.Range Dim total As Variant For Each cell In r.Cells If cell.Height <> 0 Then total = total + cell.Value End If Next SumVis = total End Function
编辑:
您需要在工作簿中创build一个模块来放入函数,然后您可以像在其他函数(= SumVis(A1:A14))中一样调用它。 如果您需要帮助build立模块,请告诉我。