1.4k Aufrufe
Gefragt in Tabellenkalkulation von daswasserwiesel Einsteiger_in (43 Punkte)
Hallo zusammen,

ich habe ein Marko das mir den Mittelwert, min, max, high, low berechnet. Funktioniert auch wunderbar (Danke nighty).

Der mittelwert wird momentan in spalte ac ausgegeben egal was in spalte a steht.

nun bräuchte ich das wenn in spalte a "GFM 1" steht den mittelwert ausgegeben in spalte ac

wenn in spalte a "GFM 2" steht den mittelwert ausgegeben in spalte ad.

wie könnte das gehen ?




Option Explicit

Sub MinMaxMitLowHigh()
Dim iArray() As Variant, bereichArray() As Variant
Dim kleinerWert() As Variant, mittelWert() As Variant, groesserWert() As Variant
Dim LowWert() As Variant, HighWert() As Variant
Dim Lzeile As Long, zaehler As Long, zaehler1 As Long, zaehler2 As Long


Dim Auswahl As Variant
Set Auswahl = Worksheets("Data")
Auswahl.Activate


With ActiveSheet
Lzeile = .Range("H" & Rows.Count).End(xlUp).Row
.Range("AC2:AG" & Lzeile) = ""
kleinerWert() = Range("AE2:AE" & Lzeile)
groesserWert() = Range("AC2:AC" & Lzeile)
mittelWert() = Range("AD2:AD" & Lzeile)
LowWert() = Range("AF2:AF" & Lzeile)
HighWert() = Range("AG2:AG" & Lzeile)
iArray() = Range("H2:H" & Lzeile)
bereichArray() = Range("I2:AB" & Lzeile)
For zaehler = 1 To UBound(iArray())
If iArray(zaehler, 1) > 0 Then
kleinerWert(zaehler, 1) = iArray(zaehler, 1)
groesserWert(zaehler, 1) = iArray(zaehler, 1)
For zaehler1 = 1 To 20
If bereichArray(zaehler, zaehler1) > 0 Then
If kleinerWert(zaehler, 1) > bereichArray(zaehler, zaehler1) Then
kleinerWert(zaehler, 1) = bereichArray(zaehler, zaehler1)
End If
If groesserWert(zaehler, 1) < bereichArray(zaehler, zaehler1) Then
groesserWert(zaehler, 1) = bereichArray(zaehler, zaehler1)
End If
mittelWert(zaehler, 1) = mittelWert(zaehler, 1) + bereichArray(zaehler, zaehler1)
zaehler2 = zaehler2 + 1
End If
Next zaehler1
mittelWert(zaehler, 1) = mittelWert(zaehler, 1) / zaehler2
LowWert(zaehler, 1) = mittelWert(zaehler, 1) - kleinerWert(zaehler, 1)
HighWert(zaehler, 1) = groesserWert(zaehler, 1) - mittelWert(zaehler, 1)
End If
zaehler2 = 0
Next zaehler
.Range("AC2:AC" & Lzeile) = mittelWert()
.Range("AD2:AD" & Lzeile) = kleinerWert()
.Range("AE2:AE" & Lzeile) = groesserWert()
.Range("AF2:AF" & Lzeile) = LowWert()
.Range("AG2:AG" & Lzeile) = HighWert()
End With

Sheets("Data").Cells(1, 29) = "average"
Sheets("Data").Cells(1, 30) = "min"
Sheets("Data").Cells(1, 31) = "max"
Sheets("Data").Cells(1, 32) = "low"
Sheets("Data").Cells(1, 33) = "high"


Worksheets("Report").Activate

'Call sort_by_date

End Sub

1 Antwort

0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi wiesel :-)

schick mir mal nochmal eine musterdatei zu,ich schreib es um

gruss nighty

oberley@t-online.de
...