web-dev-qa-db-de.com

Wie summiert man nur die Zeilen in Excel, die nicht herausgefiltert wurden?

Ich verwende die Formel SUM(B1..B20), um eine Spalte zu summieren, aber wenn ich die Daten nach einer benachbarten Spalte filtere, wird die Summe nicht aktualisiert, um nur die nicht herausgefilterten Zeilen wiederzugeben. Wie macht man das?

52
Iain

Sie müssen die Funktion ZWISCHENSUMME verwenden. Die Funktion [~ # ~] Zwischensumme [~ # ~] ignoriert Zeilen, die von einem Filter ausgeschlossen wurden.

Die Formel würde so aussehen:

=SUBTOTAL(9,B1:B20)

Die Funktionsnummer 9 teilt ihr mit, die [~ # ~] Summe [~ # ~] Funktion im Datenbereich B1: B20 .

Wenn Sie ' Filtern' sind, indem Sie Zeilen ausblenden, sollte die Funktionsnummer auf 109 aktualisiert werden.

=SUBTOTAL(109,B1:B20)

Die Funktionsnummer 109 ist für die [~ # ~] Summe [~ # ~] funktionieren auch, aber versteckte Zeilen werden ignoriert.

99
Robert Mearns

Wenn Sie keinen automatischen Filter verwenden (d. H. Sie haben Zeilen manuell ausgeblendet), müssen Sie die Funktion AGGREGATE anstelle von SUBTOTAL verwenden.

3
Tim

Wenn Sie die Ergebnisse mit dem Autofilter filtern, macht sich Excel nicht einmal die Mühe, sie auszublenden: Es setzt lediglich die Zeilenhöhe auf Null (zumindest bis 2003, nicht sicher für 2007).

Die folgende benutzerdefinierte Funktion sollte Ihnen also einen Einstieg geben, um das zu tun, was Sie wollen (getestet mit ganzen Zahlen, ohne mit irgendetwas anderem gespielt zu haben):

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

Bearbeiten:

Sie müssen ein Modul in der Arbeitsmappe erstellen, um die Funktion einzufügen. Anschließend können Sie es wie jede andere Funktion auf Ihrem Blatt aufrufen (= SumVis (A1: A14)). Wenn Sie Hilfe beim Einrichten des Moduls benötigen, lassen Sie es mich wissen.

2
mavnn