Summewenn()

Hallo Zusammen,
habe da ein „kleines“ Problem.
Benötige eine Formel, um Daten aus zwei Spalten abzufragen, und anschließend zu zählen.
Komme aber mit der SUMMEWENN() nicht weiter.

Beispiel:
Art Nr

neu 1
alt 1
neu 0
neu 1
alt 0

Nun möchte ich gern folgendes Ergebnis haben:
Anzahl der Einträge, die
Art = neu UND
Nr = 1

Ergbnis: 2

Wie kann ich das lösen???

Danke schon einmal
Gruß
Andy

Hallo Andy,

Annahme:
Die Tabelle beginnt in Zeile 1 und enthält in der Spalte A „Art“ und Spalte B „Nr“.

  1. Vorschlag:
    Definiere eine dritte Spalte, in der du folgende Formel einträgst:
    =a1&a2
    Diese Formel kannst du dann durch Runterziehen in alle Zeilen kopieren.
    Danach wendest du die SUMMEWENN auf diese neue Spalte an.

  2. Vorschlag:
    Du definierst in deiner Datei ein Makro mit folgender Logik:

Function zaehlen(VerglWert1, VerglSpalte1 As Range, _
VerglWert2, VerglSpalte2 As Range) As Long
Dim ab_Zeile As Long, bis_Zeile As Long, Z As Long
Dim S1 As Integer, S2 As Integer
Dim Anz As Long
Dim ws As Worksheet

ab_Zeile = VerglSpalte1.Row
bis_Zeile = VerglSpalte1.Rows.Count - ab_Zeile + 1
S1 = VerglSpalte1.Column
S2 = VerglSpalte2.Column
Anz = 0

With VerglSpalte1.Worksheet
For Z = ab_Zeile To bis_Zeile
If Not IsEmpty(.Cells(Z, S1)) Or Not IsEmpty(.Cells(Z, S2)) Then
If .Cells(Z, S1) = VerglWert1 _
And .Cells(Z, S2) = VerglWert2 Then Anz = Anz + 1
End If
Next Z
End With
zaehlen = Anz
End Function

Dieses Makro kannst du analog zu SUMMEWENN folgendermaßen verwenden:
=zaehlen(„neu“;A1:A99;0;B1:B99)

Das Beispiel zählt nun alle Kombination „neu“ mit dem Wert 0 im Zeilenbereich von 1 bis 99.

lg Maria

Hallo Maria,

erst einmal herzlichsten Dank für Deine Hilfe!
Dafür hast Du Dir einen " * " verdient.

Hätte aber noch einen kleinen Zusatz zu meiner Frage.

Wir bleiben bei der Annahme:
Die Tabelle beginnt in Zeile 1 und enthält in der Spalte A „Art“ und Spalte B „Nr“.

Zusätzlich befindet sich in Spalte C ein Wert.

Nun möchte ich nicht die Anzahl z.b. aus der Kombination „neu“ mit dem Wert 0 im Zeilenbereich von 1 bis 99, sondern deren Werte aus der Spalte C.

LG
Andy

Hallo,

ich nehme mal an, du meinst du möchtest die Summe der Werte aus Spalte C erhalten.

Dann mußt du das Makro folgendermaßen modifizieren:

Function summieren(VerglWert1, VerglSpalte1 As Range, _
VerglWert2, VerglSpalte2 As Range, SumSpalte As Range) As Long
Dim ab_Zeile As Long, bis_Zeile As Long, Z As Long
Dim S1 As Integer, S2 As Integer, S3 As Integer
Dim Summe As Double
Dim ws As Worksheet

ab_Zeile = VerglSpalte1.Row
bis_Zeile = VerglSpalte1.Rows.Count - ab_Zeile + 1
S1 = VerglSpalte1.Column
S2 = VerglSpalte2.Column
S3 = SumSpalte.Column
Summe = 0

With VerglSpalte1.Worksheet
For Z = ab_Zeile To bis_Zeile
If Not IsEmpty(.Cells(Z, S1)) Or Not IsEmpty(.Cells(Z, S2)) Then
If .Cells(Z, S1) = VerglWert1 _
And .Cells(Z, S2) = VerglWert2 Then Summe = Summe + .Cells(Z, S3)
End If
Next Z
End With
summieren = Summe
End Function

lg Maria

Wir bleiben bei der Annahme:
Die Tabelle beginnt in Zeile 1 und enthält in der Spalte A
„Art“ und Spalte B „Nr“.
Zusätzlich befindet sich in Spalte C ein Wert.
Nun möchte ich nicht die Anzahl z.b. aus der Kombination
„neu“ mit dem Wert 0 im Zeilenbereich von 1 bis 99, sondern
deren Werte aus der Spalte C.

Hi Andy,
gib folgende Formel als Arrayformel, aslo mit Shift+Strg+Enter ein:
=SUMME(WENN((A1:A99=„neu“);WENN(B1:B99=1;C1:C99)))
Gruß
Reinhard