Anzeige
Archiv - Navigation
956to960
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
956to960
956to960
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

stdev - stabw - vektor

stdev - stabw - vektor
09.03.2008 21:11:17
Knut
Hallo,
ich versuche eine schnelle (!) Möglichkeit zu finden die Standardabweichung in einem dynamischen vektor (die größe ist veränderlich) zu bestimmen.
Problem ist, dass das Feld wma(0) = 0 ist. Das heisst ich verwende den Index 0 nicht
Wenn ich also das hier mache kommt Schrott raus:

wausl = Application.WorksheetFunction.StDevP(wma)


also schreibe ich das ganze ins arbeitsblatt und werte dann nur die indizes 1 bis x aus,


Range(Cells(2, 70), Cells(2, 70 + anzma)) = wma
' gleichmaeßige Auslastung ?
wausl = Application.WorksheetFunction.StDevP(Range(Cells(2, 71), Cells(2, 70 + anzma)))


kennt jemand eine möglkeit nur von Index 1-x des Vektors die standardabw. zu bestimmen (muss aber auch funktionieren wenn der vektor groeßer oder kleiner wird.)
Gruß,
Knut

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: stdev - stabw - vektor
09.03.2008 23:10:29
Tino
Hallo,
meinst du so?

Sub StAbweichung()
Dim Bereich As String, wausl As Double
Bereich = "BR2:" & Range("BR2:IV2").SpecialCells(xlCellTypeLastCell).Address
wausl = Application.WorksheetFunction.StDev(Range(Bereich))
MsgBox "Die Standardabweichung beträgt:" & Chr(13) & wausl
End Sub


Gruß
Tino

AW: stdev - stabw - vektor
09.03.2008 23:25:00
Knut
Nein.
ich habe folgenden Vektor:
xyz = (0,2,3,4,5)
nun will ich die Standardabweichung von : (2,3,4,5)
ich verwende nun application.worksheetfunction.stdevp(xyz)
dann bekomme ich die Standardabweichung von (0,2,3,4,5)
was ich will ist aber: application.worksheetfunction.stdevp(xyz(1),xyz(2),xyz(3),xyz(4))
aber da xyz in der laenge veraenderlich ist, ist das auch keine Loesung.
Ich suche also eine Moeglichkeit bei der ich nicht übers worksheet gehen muss. Ich versuche Rechenzeit zu sparen bei sehr aufwendigen numerischen berechnungen.
Danke für deine Hilfe

Anzeige
AW: stdev - stabw - vektor
09.03.2008 23:59:15
Tino
Hallo,
dass müsste ja heisen, es müsste eine Schleife eingebaut werden die alle 0 Werte filtert?
Gruß
Tino

AW: stdev - stabw - vektor
10.03.2008 00:37:40
Tino
Hallo,
wie wäre es mit einer eigenen Funktion?

Option Explicit
'In ein Modul
'Mit zBsp: "=MStab(A1:A100)" kann diese Funktion auch in einner Zelle verwendet werden
Sub StAbweichung()
Dim Bereich As String, wausl As Double
Bereich = "BR2:" & Range("IV2").End(xlToLeft).Address
wausl = MStab(Range(Bereich))
MsgBox "Die Standardabweichung beträgt:" & Chr(13) & wausl
End Sub
'hier ist die Funktion
Function MStab(Bereich As Range) As Double
Dim Bere As Range
Dim a As Integer, wausl As Double
Dim adres As String
For Each Bere In Bereich
If Bere > 0 Then
adres = adres & Bere.Address & ","
End If
Next Bere
adres = Left$(adres, Len(adres) - 1)
wausl = Application.WorksheetFunction.StDev(Range(adres))
MStab = wausl
End Function


Gruß
Tino

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige