Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

Zwei Summenprodukt-Codes (VBA) verbinden
#1
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.
Antworten Top
#2
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
Antworten Top
#3
Bitte, Beispieldatei.

Code:
Sub M_snb()
   MsgBox [SumProduct(--(E7:E17&N7:N17=X4&X4)*isnumber(L7:L17),L7:L17)]
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#4
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))")
Antworten Top
#5
@snb,

hier ist die Beispieldatei.


Angehängte Dateien
.xlsx   Beispieldatei.xlsx (Größe: 16,76 KB / Downloads: 6)
Antworten Top
#6
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""))")
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • Tommiks
Antworten Top
#7
@BoskoBiati,

der Code funktioniert. Vielen Dank..
Antworten Top
#8
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.
Antworten Top
#9
Moin, 19 

schreibe die 328 OHNE alle Anführungszeichen. 21
[-] Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:
  • Tommiks
Antworten Top
#10
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""))")
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste