Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

vba - Bekomme den Mittelwert nicht raus

Forumthread: vba - Bekomme den Mittelwert nicht raus

vba - Bekomme den Mittelwert nicht raus
15.05.2024 16:31:59
Fred
Hallo Excel Profis,
ich habe da echt ein Problem, wie ich einer zuvor ermittelten Summe den Mittelwert errechne.
Das Makro:
Sub Heim_Minuten_summe()


Dim Z, lz, zz, anf, x, treffer, Spiele

anf = 9 ' ab Zeile 9
Spiele = Sheets("Auswahl1").Range("D1")
lz = ActiveSheet.Cells(Rows.count, 1).End(xlUp).Row
For Z = anf To lz
treffer = 0
For zz = Z + 1 To lz
If Cells(zz, 2) = Cells(Z, 2) Then
treffer = treffer + Cells(zz, 10)
x = x + 1: If x = Spiele Then Exit For
ElseIf Cells(zz, 3) = Cells(Z, 2) Then
treffer = treffer + Cells(zz, 10)
x = x + 1: If x = Spiele Then Exit For
End If
Next zz
If Z = anf Then
Cells(Z - 4, 10) = treffer
Exit For
End If
Next Z
End Sub

Es soll der Mittelwert festgestellt werden, von den Werten (in Spalte J), die die Summe ergibt (Leerzellen und andere Werte in Spalte J ausgeschlossen).
Ich hab es schon über eine Hilfsspalte probiert,- nada
Kann ein Experte bitte mal drauf schaun und mir die Lösung anbieten:
https://www.herber.de/bbs/user/169489.xlsb

Gruss
Fred


Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: vba - Bekomme den Mittelwert nicht raus
15.05.2024 16:46:02
ralf_b
nur zur Sicherheit. Du meinst nicht sowas = treffer / Spiele oder ?
AW: vba - Bekomme den Mittelwert nicht raus
15.05.2024 16:51:51
Fred
Hallo Ralf,
aus dem Arbeitsblattbeispiel: Die richtig ermitteltete Summe wird ja durch 2 "gültige" Zahlen festgestellt.
Summe geteilt durch die Anzahl der Werte, die für Summe herangezogen wurden.
Bin heute echt schlecht drauf,- den ganzen Nachmittag an dieser Rechnung ....

Gruss
Fred

Anzeige
AW: vba - Bekomme den Mittelwert nicht raus
15.05.2024 17:04:30
ralf_b
ein Versuch. es gibt eine neu Variable y . die solltest du noch oben mit definieren.

 For zz = Z + 1 To lz

If Cells(zz, 2) = Cells(Z, 2) Or Cells(zz, 3) = Cells(Z, 2) Then
If Cells(zz, 10) > "" Then
treffer = treffer + Cells(zz, 10)
y = y + 1
End If
x = x + 1: If x = Spiele Then Exit For
End If
Next zz
If Z = anf Then
Cells(Z - 4, 10) = treffer / y

Exit For
End If
Anzeige
AW: vba - Bekomme den Mittelwert nicht raus
15.05.2024 17:22:37
Fred
Ralf,
es klappt !!!
Du hast eine zusätzliche Bedingung hinzugefügt, um sicherzustellen, dass nur nicht-leere Zellen zur Berechnung des Mittelwerts herangezogen werden.
Es wird nun überprüft, ob der Wert in der Zelle in Spalte J nicht leer ist. Wenn die Bedingung erfüllt ist, wird der Wert zur Summe der Treffer hinzugefügt, und die Zählvariable y wird um eins erhöht.
Auf diese Weise wird nur die Anzahl der nicht-leeren Zellen gezählt, und dies wird für die Berechnung des Mittelwerts verwendet.
Wie gesagt,- Stundenlang dran geschraubt ..... ohne Ergebnis!

Vielen Dank Ralf für die Mühe und Kompetenz
Sub Heim_Minuten_Mittelwert33()


Dim Z As Long, lz As Long, zz As Long, anf As Long, x As Long, y As Long, treffer As Double, Spiele As Long

anf = 9

Spiele = Sheets("Auswahl1").Range("D1").Value

lz = ActiveSheet.Cells(Rows.count, 1).End(xlUp).Row

For Z = anf To lz
x = 0
treffer = 0
y = 0
For zz = Z + 1 To lz
If Cells(zz, 2).Value = Cells(Z, 2).Value Or Cells(zz, 3).Value = Cells(Z, 2).Value Then
If Cells(zz, 10).Value > "" Then
treffer = treffer + Cells(zz, 10).Value
y = y + 1
End If
x = x + 1
If x = Spiele Then
Exit For
End If
End If
Next zz
If Z = anf Then
If y > 0 Then
Cells(Z - 4, 10).Value = treffer / y
Else
Cells(Z - 4, 10).Value = 0
End If
Exit For
End If
Next Z

End Sub



Gruss
Fred

Anzeige
AW: vba - Bekomme den Mittelwert nicht raus
15.05.2024 17:44:37
BoskoBiati2
Hi,

ich hätte da auch noch was:

Sub Heim_Minuten_summe()


Dim Lz As Long, Z As Long, x As Long, loZeit As Long, loSpi As Long, Ver As String

With Sheets("Auswahl1")
Ver = .Range("B9")
x = 0
loZeit = 0
loSpi = 0
Lz = .Cells(Rows.Count, 1).End(xlUp).Row
Z = 11
Do Until x = .Range("D1")
If .Cells(Z, 2) = Ver Or .Cells(Z, 3) = Ver Then
x = x + 1
If .Cells(Z, 10) > "" Then
loZeit = loZeit + .Cells(Z, 10)
loSpi = loSpi + 1
End If
End If
Z = Z + 1
Loop
.Cells(5, 10) = loZeit
.Cells(5, 11) = loSpi
If loSpi > 0 Then
.Cells(5, 12) = loZeit / loSpi
Else
.Cells(5, 12) = "---"
End If

End With
End Sub
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige