summewenn mit mehreren Abfragen

Bild

Betrifft: summewenn mit mehreren Abfragen
von: Berthold Grabe
Geschrieben am: 24.02.2005 13:04:30
Ans Forum,
da zu o.g. Thema immer wieder Anfrage auftauchen, ich selbst ebenfalls nach einer einfachen Lösung gesucht und nicht gefunden habe, möchte ich hier meine Lösung zur Verfügung stellen:


Function Summe2Wenn(Bed1 As Range, Bed2 As Range, Suche1, Suche2, Werte As Range)
'summiert Werte in Abhängigkeit von 2 Bedingungen mittels Durchsuchung von 2 Spalten
Dim Anzahl As Integer, i As Integer
Dim Summe As Single
    Summe = 0
    Anzahl = Bed1.Cells.Count
    For i = 1 To Anzahl
        If Bed1(i).Value = Suche1 And Bed2(i).Value = Suche2 Then
            Summe = Summe + Werte(i).Value
        End If
    Next i
    Summe2Wenn = Summe
End Function

Die Funktion sucht je einen Wert in je einer Bed. Spalte heraus, bei Erfüllung beider Bedingungen wird der entsprechende Wert der dritten Spalte summiert.
Berthold Grabe
Bild

Betrifft: AW: summewenn mit mehreren Abfragen
von: Boris
Geschrieben am: 24.02.2005 13:52:45
Hi Berthold,
...ich selbst ebenfalls nach einer einfachen Lösung gesucht und nicht gefunden habe...
Diese Lösung gehört doch fast schon zu Standard:
=SUMMENPRODUKT((A1:A100="x")*(B1:B100="y")*C1:C100)
Summiert Spalte C, wenn Spalte A="x" und B="y".
Und dürfte - auch wenn jede Zeile innerhalb des Arrays einzeln berechnet wird - um einiges flotter sein als eine For-Next-Schleife.
Grüße Boris
Bild

Betrifft: AW: summewenn mit mehreren Abfragen
von: Berthold Grabe
Geschrieben am: 26.02.2005 12:42:10
Hallo Boris,
danke für die Lösung, erste mal, dass ich eine Erklärung zum Summenprodukt auch verstanden habe.
Meine Lösung scheint mir zwar leichter nachvollziehbar, die andere benötigt jedoch keine Programmierung
Gruß
Berthold
Bild

Betrifft: AW: summewenn mit mehreren Abfragen
von: Dennis
Geschrieben am: 28.02.2005 09:46:36
Hallo an alle!
Hallo Boris
Wenn ich diese Formel verwende wird bei mir immer #Zahl angezeigt.
Hier meine Abwandlung: =SUMMENPRODUKT((Leistung!A:A=35)*(Leistung!I:I=50103)*Leistung!M:M) oder =SUMMENPRODUKT((Leistung!A:A="35")*(Leistung!I:I=B45)*Leistung!M:M)
wobei das zweite mit dem Bezug besser ist. Ich habe es auch mit "" usw. probiert. Es steht immer #Zahl in dem Feld. Ich frage mich wo keine Zahl stehen soll.
Was mache ich Falsch?
 Bild

Beiträge aus den Excel-Beispielen zum Thema "summewenn mit mehreren Abfragen"