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?
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.
Wenn Sie keinen automatischen Filter verwenden (d. H. Sie haben Zeilen manuell ausgeblendet), müssen Sie die Funktion AGGREGATE
anstelle von SUBTOTAL
verwenden.
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.