How does one sum only those rows in excel not filtered out?

前端 未结 3 1120
终归单人心
终归单人心 2021-01-31 07:25

I use the SUM(B1..B20) formula to sum a column, but when I filter the data by an adjacent column, the sum doesn\'t update to reflect only those rows not filtered ou

3条回答
  •  面向向阳花
    2021-01-31 08:14

    When you use autofilter to filter results, Excel doesn't even bother to hide them: it just sets the height of the row to zero (up to 2003 at least, not sure on 2007).

    So the following custom function should give you a starter to do what you want (tested with integers, haven't played with anything else):

    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
    

    Edit:

    You'll need to create a module in the workbook to put the function in, then you can just call it on your sheet like any other function (=SumVis(A1:A14)). If you need help setting up the module, let me know.

提交回复
热议问题