Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1276to1280
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Std. Abweichung pro Stunde und Tag berechnen

Std. Abweichung pro Stunde und Tag berechnen
Michael
Hallo Experten,
ich stehe vor einem Problem das ich irgendwie nicht lösen kann. Dabei versuche ich mittels einer UDF den Mittelwert und die Std. Abweichung pro Std. berechnen. Leider ergibt mir meine Funktion den Wert 0% und nicht wie mauell berechnet 0.00004%. Ich verstehe nicht woran das liegt :(. Das Excel wie ich es maunell berechne kann hier gefunden werden:
https://www.herber.de/bbs/user/81871.xlsm
Leider ist das nur ein Ausschnitt und die Messung hat über 100k Zeilen deshalb würde ich es gerne als UDF machen. Die Funktion kann unten gefunden werden.
Danke für die Hilfe.
Viele Grüße,
Michael
Option Explicit
Private objX() As Variant, objY() As Variant, objZ() As Variant, lngCount As Long
'Gets the Data and performs the calculations
Sub GetData()
Calc ("Data")
End Sub

'

Function to calculate the Arithmetic Mean

Function Calc(strSheet As String) As Double
Dim dblSumAverage As Double
Dim varElement As Variant
Dim aktDate As Date
Dim aktHour As Long
'Dim cText As String
Call prcDatenObjekt_erzeugen(strSheet:=strSheet)
For varElement = 1 To lngCount - 1
aktDate = objX(varElement)
aktHour = Hour(objY(varElement))
If objX(varElement) > aktDate Or _
Hour(objY(varElement)) > aktHour Then
dblSumAverage = dblSumAverage + ((objZ(varElement + 1) - objZ(varElement)) / objZ( _
varElement))
End If
Next
dblSumAverage = dblSumAverage / (lngCount - 1)
ActiveSheet.Cells(3, 14).Value = dblSumAverage
Erase objX, objY, objZ
End Function
Sub prcDatenObjekt_erzeugen(ByVal strSheet As String)
Dim arrX, arrY, arrZ, lngX As Long
With Sheets(strSheet)
arrX = .Cells(5, 1).Resize(Application.WorksheetFunction.Count(.Range(.Cells(5, 1), _
.Cells(Rows.Count, 1).End(xlUp))))
arrY = .Cells(5, 1).Resize(Application.Count(.Range(.Cells(5, 1), _
.Cells(Rows.Count, 1).End(xlUp)))).Offset(, 1)
arrZ = .Cells(5, 1).Resize(Application.Count(.Range(.Cells(5, 1), _
.Cells(Rows.Count, 1).End(xlUp)))).Offset(, 2)
End With
lngCount = 0
For lngX = LBound(arrX) To UBound(arrX)
lngCount = lngCount + 1
ReDim Preserve objX(0 To lngCount)
ReDim Preserve objY(0 To lngCount)
ReDim Preserve objZ(0 To lngCount)
objX(lngCount) = arrX(lngX, 1) * 1
objY(lngCount) = arrY(lngX, 1) * 1
objZ(lngCount) = arrZ(lngX, 1) * 1
Next lngX
End Sub

AW: Std. Abweichung pro Stunde und Tag berechnen
18.09.2012 17:31:59
Peter
Hallo Michael,
das sind ja Dialoge ohne Ende. Ich versuche mal auf meine Art das Problem zu lösen, wird aber noch etwas dauern, und bitte daher um Geduld. Werde mich wieder melden.
M.f.G. Peter Kloßek

AW: Std. Abweichung pro Stunde und Tag berechnen
18.09.2012 18:05:23
Michael
Hallo Peter,
Super Danke. Ist es möglich dies weiterhin
Als UDF zu tun.
Viele Grüße
Michael

AW: Std. Abweichung pro Stunde und Tag berechnen
18.09.2012 20:26:43
Peter
Hallo Michael,
ich habe mal in meinem alten Statistik-Lehrbuch (Scheibler, Wirtschaftsstatistik, 1957) nachgeschaut. Danach errechnen sich die Einzelabweichungen vom Mittelwert der Einzelmessungen. Die Abweichungen sind anschließend zu quadrieren und die quadrierten Ergebnisse zu addieren. Die Summe ist zu dividieren durch die Anzahl der Posten und aus diesem Ergebnis ist die Quadratwurzel zu ziehen. So bin ich in der beiliegenden Arbeitsmappe verfahren. In Tabelle 2, Bereich I7 bis J7, werden die Standardabweichungen effektiv (in den Mess-Einheiten) ermittelt. Man kann selbstverständlich auch Prozentsätze vom Mittelwert erstellen, wenn man die Formel etwas ergänzt. Auch wenn Du eine andere Art der Standardabweichung errechnen möchtest, dürfte es nicht schwer sein, die Formel(n) in dem genannten Bereich entsprechend abzuändern. Die Formeln beziehen sich in der Tabelle 2 immer auf den gefilterten Datenbestand; wobei die Filterung automatisch mit dem Makro1 erfolgt.
Als Höchstgrenzen sind 500 bzw. 3000 Zeilen/Datensätze vorgesehen. Wenn Du mehr benötigst, Formeln und Makro bitte an den gekennzeichneten Stellen anpassen.
Bitte überprüfe mal, ob die Sache klappt und melde Dich mit dem Ergebnis wieder.
Mit freundlichem Gruß
Peter Kloßek
https://www.herber.de/bbs/user/81878.xlsm

Anzeige
AW: Std. Abweichung pro Stunde und Tag berechnen
18.09.2012 20:50:30
Michael
Hallo Peter,
Danke für die Antwort und Mühen. das sieht etwas aus als ich mir das vorgestellt habe. Wie man die Std. Abweichung usw berechnet war mir klar ;). Was ich meinte ist eher, dass ich das angehängte Excel in meiner Fragestellung 1:1 in VBA abbilden wollte. Die ersten Schritte hatte ich getan aber irgendwie hat die IF statement nicht geklappt bzw. klappt es nicht.
Meinst du du kannst das in mein Makro einfügen?
Viele Grüße,
Michael

AW: Std. Abweichung pro Stunde und Tag berechnen
18.09.2012 22:24:53
Peter
Hallo Michael,
schlussendlich sind doch wohl die Ergebnisse entscheidend, oder nicht? Wenn ich das Problem richtig verstanden habe, sollen sich die Standardabweichungen auf die tatsächlichen Messergebnisse innerhalb einer Stunde beziehen und doch wohl nicht auf die Differenzen, die sich von einer Messung zur nächsten ergeben, oder liege ich da falsch? Die Umstellung auf %-Sätze (vom Mittelwert) geht ganz einfach in Tabelle2, J7:
=(SUMME(J11:J500)/ANZAHL(J11:J500))^(1/2)/I7*100.
Vielleicht ganz einfach mal ausprobieren mit einer größeren Anzahl von Datensätzen (aber nicht mehr als 3000, sonst erst Programm anpassen!), die Du in die ersten 3 Spalten von Sheet1 hineinkopierst.
Noch etwas: ich bin ein praktischer Mensch und komme mit Deinem Ansatz und den komplizierten Formeln leider nicht zurecht. Ich brauche zwar zwei zusätzliche Arbeitsblätter, aber sonst ist alles relativ einfach und übersichtlich.
M.f.G. Kloßek

Anzeige
AW: Std. Abweichung pro Stunde und Tag berechnen
20.09.2012 14:52:10
Michael
Hallo Peter,
Danke für deine Antwort. Ich habe es auf die Differenz bezogen. Wenn du dir das Excel anschaust in meiner ersten Frage Löse ich das Problem innerhalt Excel ganz einfach. Bin auch sehr Praktisch möchte aber Lösungen auch einfach haben (Der Macro Recorder nicht nicht immer so gut). Deshalb lasse ich das noch offen.
VG,
Michael

149 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige