Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Summenprodukt in VBA

Forumthread: Summenprodukt in VBA

Summenprodukt in VBA
06.05.2009 17:27:07
MBorn
Hallo,
ich erlaube mir diese Frage nochmals zu wiederholen, da sie noch nicht beantwortet
werden konnte:
Ich versuche die Funktion Summenprodukt für VBA umzubauen. Als Excel-Formel heißt sie:
=SUMMENPRODUKT(($C$1:$C$300000=AB$1)*($F$1:$F$300000=$AA2))
Diese Formel funktioniert.
In VBA versuche ich (ohne Erfolg):
Dabei habe ich den Vorschlag von Hajo ['Evaluate ("=SumProduct((Tabelle2!A40:A46 =""Geiger"")*((Tabelle2!B40:B46)))")] eingebaut:

Sub Demo()
For i = 2 To 6
For j = 5 To 15
MsgBox Evaluate("=Sumproduct((A1:A30=cells(i,4))*(F1:F30=cells(1,j)))")
Cells(i, j) = Evaluate("=Sumproduct((A1:A30=cells(i,4))*(F1:F30=cells(1,j)))")
Next j
Next i
End Sub


Userbild
https://www.herber.de/bbs/user/61655.xls
Gruß und Dank,
Born

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Summenprodukt in VBA
06.05.2009 18:01:56
Hajo_Zi
Hallo Born,

Sub Demo()
For i = 2 To 6
For j = 5 To 15
'Evaluate ("=SumProduct((Tabelle2!A40:A46 =""Geiger"")*((Tabelle2!B40:B46)))")
'MsgBox Evaluate("=Sumproduct((A1:A30=""" & Cells(i, 4) & """)*(F1:F30=" & Cells(1, j) & ")) _
")
Cells(i, j) = Evaluate("=Sumproduct((A1:A30=""" & Cells(i, 4) & """)*(F1:F30=" & Cells(1, j) _
& "))")
Next j
Next i
End Sub
'ActiveSheet.Range("B1").Value = Evaluate("=SumProduct((Tabelle2!A40:A46 =""Geiger"")*(( _
Tabelle2!B40:B46)))")



Anzeige
AW: Summenprodukt in VBA - Noch nicht
06.05.2009 18:18:08
MBorn
Hallo Hajo,
funktioniert es bei Dir? Bei mir nicht.
siehe: https://www.herber.de/bbs/user/61658.xls
Es werden nur Nullen ausgegeben. Würdest du
bitte nochmal drauf schauen? (Oder wer auch immer
weiß, wie's geht). Danke
Gruß
Born
Anzeige
AW: Summenprodukt in VBA - Noch nicht
06.05.2009 18:47:56
Hajo_Zi
Halo Born,

Sub test()
Range("E2:O6").FormulaLocal = "=SUMMENPRODUKT(($A$1:$A$23=E$1)*($B$1:$B$23=$D2))"
Range("E2:O6").Copy
Range("E2:O6").PasteSpecial Paste:=xlPasteAll
Application.CutCopyMode = False
End Sub


Gruß Hajo

Anzeige
AW: Summenprodukt in VBA - Noch, noch nicht
06.05.2009 19:03:13
MBorn
Hallo Hajo,
das ist sicher eine Möglichkeit, aber das ist auch genau das, was ich vermeiden wollte.
Bei einer Tabelle mit 200000 Zeilen dauert die Berechnung mit der Excel-Funktion viel
zu lange. Deswegen suche ich eine "echte" Lösung in VBA. Funktioniert denn das Evaluate
bei Dir?
Gruß,
Born
Anzeige
AW: Summenprodukt in VBA - Noch, noch nicht
06.05.2009 19:15:57
MBorn
Hallo Hajo,
habe mit Basteleien einen Umweg über Evaluate Sum gefunden. Danke für die Hilfe.
Cells(Zeile, Spalte) = Application.Evaluate("=sum((A1:A23=" & Cells(1, Spalte) & ")*(B1:B23=""" & Cells(Zeile, 4) & """))")
Gruß,
Born
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige