Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
Spalten aus Range als Range ausgeben, ... |
22.04.2006 11:49:09 |
TiredHornet |
|
|
|
10.05.2006 09:19:40 |
Rasta |
|
|
|
11.05.2006 11:02:27 |
TiredHornet |
|
|
Von:
TiredHornet |
Datum:
22.04.2006 11:49:09 |
Views:
2011 |
Rating:
|
Antwort:
|
Thema:
Spalten aus Range als Range ausgeben, ... |
Ich muss für mein Studium (BWL) eine Funktion-Programmieren die eine Covarianz-Varianz-Matrize berechnet. Die Funktion für die erwartungsgetreue Covarianz konnte ich schon mal programmieren. Die Covarianz-Varianz-Matrize bereite mir probleme.
Ich erkläre erstmal was die Funktion machen soll:
Sie soll eine rechteckiges Datenfeld entgegen nehmen, und jeweils die Covarianz der Kolone mit sich selber(also Varianz) und mit jeder andern Kolone berechnen. Ausgegeben wir das Resultat als der Grösse Kolone x Kolone.
Meine drängendste Frage ist, wie kann ich spalten aus einem Range als Range ausgeben?
Hier mal was ich bisher Programmiert habe:
Option Explicit
Option Base 1
Function Cov(x As Range, y As Range) 'kovarianz funktioniert gut
Dim n As Integer
Dim xmean As Long
Dim ymean As Long
Dim sumx As Long
Dim sumy As Long
Dim sumdistxy As Long
Dim i As Integer
Dim testx As Boolean
Dim testy
Application.Volatile
testx = x.Rows.Count > 1 And x.Columns.Count > 1
If testx = True Then
MsgBox (""X-Array can only be 1 colum Or row wide"")
Cov = CVErr(xlErrNA)
Exit Function
Else: End If
testy = y.Rows.Count > 1 And y.Columns.Count > 1
If testy = True Then
MsgBox (""Y-Array can only be 1 colum Or row wide!"")
Cov = CVErr(xlErrNA)
Exit Function
Else: End If
n = x.Cells.Count
sumx = 0
For i = 1 To n
sumx = sumx + x(i) 'beim benutzen der Cov-Funktion für die CovMatrix bricht es jeweils hier ab.
'ich schätze mal es kann aus x(i) nicht lesen, weil x kein range ist. (siehe weiter unten)
Next
xmean = sumx / n
sumy = 0
For i = 1 To n
sumy = sumy + y(i)
Next
ymean = sumy / n
sumdistxy = 0
For i = 1 To n
sumdistxy = sumdistxy + ((x(i) - xmean) * (y(i) - ymean))
Next
Cov = sumdistxy / (n - 1)
End Function
Function CovMatrix(data As Range) 'hier fangen die probleme an
Dim nc As Integer
Dim c As Integer
Dim r As Integer
Dim Result() As Double
Dim i As Integer
Dim k As Integer
nc = data.Columns.Count
ReDim Result(nc, nc)
For c = 1 To nc
For r = 1 To nc
For i = 1 To nc
For k = 1 To nc
Result(c, r) = Cov(data.Columns(i),data.Columns(k)) 'gibt mir data.colums(i) die kolone i als range zurück?
'ich glaube hier liegt meine derzeitiges problem
Next k
Next i
Next r
Next c
CovMatrix = Result
End Function
Meine erstes Problem liegt darin das data.columns(i)anscheinend nicht die Kolone i as Range ausgibt. Wie mache ich das? Ob der Rest stimmt vermag ich noch nicht zu sagen.
Hilfe wäre sehr willkommen!
Gruss TiredHornet |
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
Spalten aus Range als Range ausgeben, ... |
22.04.2006 11:49:09 |
TiredHornet |
|
|
|
10.05.2006 09:19:40 |
Rasta |
|
|
|
11.05.2006 11:02:27 |
TiredHornet |
|
|