Hallo!
Ersetze mal in der loop Schleife den for i 1 to 4 durch den hier:
For i = 1 To 4
'=ZÄHLENWENN(A1:A7;"pos*")
anzahl = Application.WorksheetFunction.CountIf(Workbooks(name2).Worksheets(1).Columns(2), bedingungen(i) & "*")
'=SUMMEWENN(A1:A7;"pos*";B1:B7)
summe = Application.WorksheetFunction.SumIf(Worksheets(1).Columns(2), bedingungen(i) & "*", Worksheets(1).Columns(3))
If anzahl = 0 Then
mitwe = 0
Else
mitwe = summe / anzahl
End If
'Spalte B Bedingungen, Spalte C Werte
'=SVERWEIS("neg*";A1:B7;2;FALSCH)
formel1 = "=SVERWEIS(" & Chr(34) & bedingungen(i) & "*" & Chr(34) & ";B1:C5100;2;FALSCH)"
Workbooks(name2).Worksheets(1).Columns("B:C").Sort Key1:=Workbooks(name2).Worksheets(1).Range("C1"), Order1:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:=True, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
Workbooks(name2).Worksheets(1).Cells(1, 4).FormulaLocal = formel1
max = Worksheets(1).Cells(1, 4).Value
Workbooks(name2).Worksheets(1).Columns("B:C").Sort Key1:=Workbooks(name2).Worksheets(1).Range("C1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=True, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
Workbooks(name2).Worksheets(1).Cells(1, 5).FormulaLocal = formel1
min = Worksheets(1).Cells(1, 5).Value
Workbooks(name).Worksheets(1).Cells(zeile, 4 + (i - 1) * 3) = mitwe
Workbooks(name).Worksheets(1).Cells(zeile, 3 + (i - 1) * 3) = min
Workbooks(name).Worksheets(1).Cells(zeile, 2 + (i - 1) * 3) = max
Next i
Der geht sowohl bei den normalen Sachen wie bisher (da ändert sich ja nix mit dem Sternchen) als auch bei den erweiterten Bedingungen. ISt mit dem Sternchen angepasst. Zudem reicht durch das sortiren eine einzige Formel. Wenn du da eine Datei mit den WErten NEG_00_04 etc. hast und nur nach NEG auswerten willst, dann einfach bei den Bedingungen NEG eintragen. Dann wird alles gezählt was mit NEG anfängt. Falls du das auf Dateien eingrenzen kannst (über Name etc.), würde ich einen zweiten Array mit den neuen Bedingungen bilden und bei der Dateiauswertung beim Erkennen der bestimmten Dateien dann den jeweiligen Array "laden". Wenn du das so machst, zuerst POS und NEG und dann zweimal nix. Da zählt er dann zwar alles aber das kannst du dann ja ignorieren (alternative wäre in den Fällen auch i ändern oder POS und NEG zweimal eintragen).
Gruß
|