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

Selbst erstellte Function

Selbst erstellte Function
23.06.2004 15:18:09
Daniel
Hallo allerseits!
Folgendes Problem:
Zu statistischen Zwecken ermittle ich u.a. die Standardabweichung für relativ viele Bereiche.
Dazu verwende ich die Funktion Stabw, der ich als Argumente den Datenbereich mitteile.
Bsp: =stabw(A1:A92)
Wenn ich den Bereich ändern will muss ich jedesmal in die Formel gehen und dort die neuen Werte eingeben.
Da der selbe Bereich auch noch für andere Funktionen verwendet wird, ich aber den Bereich auch immer mal wieder ändere (verkleinere/vergrößere), ist es jedesmal eine Zeitaufwendige Aktion alle betroffenen Zellen zu ändern.
Da ich ein fauler Mensch bin wollte ich mir eine Funktion schreiben, die es mir ermöglicht, die Zeilennummern alle auf einmal zu ändern.
Ich gebe mir also zwei Zellen vor (A1 und A2) in die ich Anfang und Ende des Bereiches eintrage.
Dann schreibe ich folgende Funktion:

Function SA(Anfang, Ende)
SA = stdev("A" & Anfang & ":A" & Ende)
End Function

Angenommen ich schreibe in A1 den Wert 10 und in A2 den Wert 50 so sollte mir diese Funktion, korrekt aufgerufen in Zelle A3 und unter der Vorraussetzung, dass die Zellen A10 bis A50 auch mit Zahlen gefüllt sind, die Standardabweichung dieses Bereiches ausgeben.
Ihr ahnt es:
Excel macht das nicht!
Ich erhalte die Fehlermeldung
"

Sub oder 

Function nicht definiert",
was übrigens auch beim Aufruf der Funktion sum und anderen passiert.
Lediglich die Funktion sqr scheint Excel zu kennen.
Kann mir da jemand weiter helfen?
Vielen Dank schon mal im Vorraus!
Daniel

		

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

Betreff
Datum
Anwender
Anzeige
AW: Selbst erstellte Function
Andreas
ein anderer Vorschlag
Ist es nicht besser mit NAMEN (Einfügen/Namen) zu arbeiten.
Du definierst den Namen BLABLA als A1:A92 und dann sprichst Du BLABLA an.
Falls der Bereich sich ändert, dann ist es nur notwendig ein Mal die Definition von BLABLA zu ändern.
worksheetfunction.stdev(...) oT
Uduuh
AW: worksheetfunction.stdev(...) oT
23.06.2004 15:47:00
Daniel
Gute Idee mit worksheetfunction.stdev(...)
Hatte ich auch schon versucht (SA = WorksheetFunction.StDev("A" & Anfang & ":A" & Ende)), aber leider spielt Excel auch hier nicht mit!
Fehler: #WERT
Die Sache mit NAMEN klingt nicht schlecht, probiere ich mal aus!
AW: Selbst erstellte Function
23.06.2004 15:33:14
Matthias
Hallo Daniel,
so funktioniert es:

Function SA(Anfang, Ende)
Dim r As Range
SA = WorksheetFunction.StDev(Range("A" & Anfang & ":A" & Ende))
End Function

ABER: Die Änderung der betr. Zellen hat durch deine Funktion keine Neuberechnung zur Folge, da du keinen Bereich mehr übergibst, dessen Änderung eben eine Neuberechnung zur Folge hätte. Du übergibst nur zwei Zahlen, und da ist Excel dann egal, wenn sich Zellwerte im Bereich A(Zahl1):A(Zahl2) ändern.
Also sei lieber nicht so faul und belasse es bei der ursprünglichen Formel :-)
Du kannst ja folgendes machen:
Schreibe den Bereich (z.B. A1:A11) in eine Zelle (z.B. D1) und schreibe dann:
=STABW(INDIREKT(D1))
Gruß Matthias
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige