Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
________
Servus
Case
[-] Folgende(r) 1 Nutzer sagt Danke an Case 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