Clever-Excel-Forum

Normale Version: Zwei Summenprodukt-Codes (VBA) verbinden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

ableitend aus der folgenden Formel habe ich die unteren Codes geschrieben 
Z4 =SUMMENPRODUKT(($E$7:$E$17=$X4)*1;($C$7:$C$17);($E$7:$E$17<>"a")*1)+SUMMENPRODUKT(($N$7:$N$17=$X4)*1;($L$7:$L$17);($N$7:$N$17<>"a")*1)

Die Codes funktionieren im Alleingang , aber ich muss zwei Bereiche betrachten.

Ich habe wie die obere Formel Plus-Zeichen versucht, keine Chance. Mit UND- Zeichen geht es auch nicht. 


Ich schaffe es nicht aus zwei VBA Codes ein ganzer Code zu machen.

ActiveSheet.Range("Z4").Value = Evaluate("sumproduct((E7:E17=X4)*1*(L7:L17<>""a""),(L7:L17))")
ActiveSheet.Range("Z4").Value = Evaluate("sumproduct((N7:N17=X4)*1*(L7:L17<>""a""),(L7:L17))")

Das habe ich schon versucht, aber ohne Erfolg :

ActiveSheet.Range("Z5").Value = Evaluate("sumproduct((E7:E17 & N7:N17=X5)*1*(C7:C17& L7:L17<>""a""),(C7:C17 & L7:L17))")


Bedanke mich im Voraus für die Unterstützung.
Hallo,

ActiveSheet.Range("Z5").Value = Evaluate("SUMPRODUCT(($E$7:$E$17=$X4)*1*($C$7:$C$17),($E$7:$E$17<>""a"")*1)+SUMPRODUCT(($N$7:$N$17=$X4)*1*($L$7:$L$17),($N$7:$N$17<>""a"")*1)")

Gruß, Uwe
Bitte, Beispieldatei.

Code:
Sub M_snb()
   MsgBox [SumProduct(--(E7:E17&N7:N17=X4&X4)*isnumber(L7:L17),L7:L17)]
End Sub
Es tut mir leid 20 , ich habe so oft verschiedene Varianten getestet, dass ich die ursprünglichen Codes falsch übernommen habe.

Das sind die Codes:

ActiveSheet.Range("Z6").Value = Evaluate("sumproduct((E7:E17=X6)*1*(C7:C17<>""a""),(C7:C17))")
ActiveSheet.Range("Z6").Value = Evaluate("sumproduct((N7:N17=X6)*1*(L7:L17<>""a""),(L7:L17))")
@snb,

hier ist die Beispieldatei.
Hi,

da die Bereiche verschoben sind, würde ich das empfehlen:


Code:
ActiveSheet.Range("Z6").Value = Evaluate("SUMPRODUCT(($E$7:$E$17=$X4)*($C$7:$C$17)*($E$7:$E$17<>""a"")+($N$8:$N$18=$X4)*($L$8:$L$18)*($N$8:$N$18<>""a""))")
@BoskoBiati,

der Code funktioniert. Vielen Dank..
Code:
ActiveSheet.Range("Z6").Value = Evaluate("SUMPRODUCT(($E$7:$E$17=$X4)*($C$7:$C$17)*($E$7:$E$17<>""a"")+($N$8:$N$18=$X4)*($L$8:$L$18)*($N$8:$N$18<>""a""))")
Der Code funktioniert tadellos.

Ich möchte die zwei $X4-Stellen mit der Zahl 328 ersetzen. Ich habe dafür an die Stellen ""328"" geschrieben. Aber ich erhalte ein falsches Ergebnis.
Code:
ActiveSheet.Range("Z6").Value = Evaluate("SUMPRODUCT(($E$7:$E$17=""328"")*($C$7:$C$17)*($E$7:$E$17<>""a"")+($N$8:$N$18=""328"")*($L$8:$L$18)*($N$8:$N$18<>""a""))")

Wie muss ich an der Stelle den Code ergänzen, dass der Code nach der Zahl 328 sucht? Danke.
Moin, 19 

schreibe die 328 OHNE alle Anführungszeichen. 21
Code:
ActiveSheet.Range("Y4").Value = Evaluate("SUMPRODUCT(($E$7:$E$17=328*($C$7:$C$17)*($E$7:$E$17<>""a"")+($N$7:$N$17=328*($L$7:$L$17)*($N$7:$N$17<>""a""))")
Der obere Code hat nicht gefruchtet.

Aber der Code war richtig, danke...
Code:
ActiveSheet.Range("Y4").Value = Evaluate("SUMPRODUCT(($E$7:$E$17=328)*($C$7:$C$17)*($E$7:$E$17<>""a"")+($N$7:$N$17=328)*($L$7:$L$17)*($N$7:$N$17<>""a""))")
Seiten: 1 2