ich versuche gerade, die Auswertung einer Testdatenbank (hier in A1:B10) zu erstellen. Ziel ist es, eine zweidimensionale Tabelle zu füllen. In den Zeilen stehen die Testfallgruppen (hier in Spalte D2:D4) und in den Spalten stehen die Teststatus (hier in E1:G1). In die Felder E2:G4 sollen nun die Anzahl der Testfälle eingetragen werden, die zu der entsprechenden Testfallgruppe gehören und den in der Spalte benannten Status haben.
https://www.herber.de/bbs/user/77807.xls
Mit folgendem Code klappt das auch sehr gut (u.a. dank der Hilfe von Uwe (:o)):
Sub count_me()
With ActiveSheet
.Range("E2").Formula = "=SUMPRODUCT((LEFT(A1:A10,LEN(D2))=(D2))*((B1:B10)=E1))"
.Range("F2").Formula = "=SUMPRODUCT((LEFT(A1:A10,LEN(D2))=(D2))*((B1:B10)=F1))"
.Range("G2").Formula = "=SUMPRODUCT((LEFT(A1:A10,LEN(D2))=(D2))*((B1:B10)=G1))"
.Range("E3").Formula = "=SUMPRODUCT((LEFT(A1:A10,LEN(D3))=(D3))*((B1:B10)=E1))"
.Range("F3").Formula = "=SUMPRODUCT((LEFT(A1:A10,LEN(D3))=(D3))*((B1:B10)=F1))"
.Range("G3").Formula = "=SUMPRODUCT((LEFT(A1:A10,LEN(D3))=(D3))*((B1:B10)=G1))"
.Range("E4").Formula = "=SUMPRODUCT((LEFT(A1:A10,LEN(D4))=(D4))*((B1:B10)=E1))"
.Range("F4").Formula = "=SUMPRODUCT((LEFT(A1:A10,LEN(D4))=(D4))*((B1:B10)=F1))"
.Range("G4").Formula = "=SUMPRODUCT((LEFT(A1:A10,LEN(D4))=(D4))*((B1:B10)=G1))"
End With
End Sub
Um den Code auch wirklich nutzen zu können, müsste er aber auch für größere und komplexere Tabellen geeignet sein. In der vorliegenden Version muss ich aber für jede Kombination von Testfallgruppen Status eine eigene Zeile Code hinzufügen.
Frage: Wie könnte eine elegante Lösung mit möglichst wenig Code-Redundanzen aussehen, die auch möglichst wenig Arbeitsschritte braucht?
PS: Eine vollständige Lösung wäre toll. Ich würde mich aber schon über Hinweise zu einem Lösungsansatz freuen.
Danke und Gruß
Stefan Jäschke