Array

Informationen und Beispiele zu den hier genannten Dialog-Elementen:


Excel-Version: 9.0 (Office 2000)
  • Array von Ralf vom 20.06.2002 - 08:30:55
    • Re: Array von Hans W. Hofmann vom 20.06.2002 - 10:47:38
nach unten

Betrifft: Array
von: Ralf
Geschrieben am: 20.06.2002 - 08:30:55

Hallo Leute,
ich habe weiter unten Code meines Programmes eingefügt. Dieser liest aus der Spalte A1 und C1 jeweils 8 Zahlen ein in ein Array und gibt mir am Schluß den berechneten Wert "KorrKoeffQuad" in einer Msg Box aus. Mein Problem ist, das er es komplett für alle 8 Werte macht, ich möcht aber diese Berechnung 2 mal durchführen und zwar von Array(1) bis Array (4) und dan noch mal von Array(5) bis Array(8). Zum Schluß sollen also zwei Werte in der Msg Box stehen. Wie krieg ich das hin :-( ??
Der Code:
Private Sub CommandButton1_Click()

MsgBox (Str(berechnung(X)))
End Sub


Public Function berechnung(K)

'Arraylänge ermitteln
aeins = Cells(Rows.Count, 1).End(xlUp).Row
azwei = Cells(Rows.Count, 3).End(xlUp).Row
ReDim arreins(aeins)
ReDim arrzwei(azwei)


' Erstes Array einlesen
For spalteeins = 1 To aeins
arreins(K) = Cells(spalteeins, 1).Value
K = K + 1
Next spalteeins

'Zweites Array auslesen
For spaltezwei = 1 To azwei
arrzwei(l) = Cells(spaltezwei, 3).Value
l = l + 1
Next spaltezwei

'Arrayelemente aufsummieren (Summe aller N)
For oeins = 1 To aeins
e = e + arreins(m)
v = arreins(m) * arreins(m) 'Arrayelemente quadrieren und summieren
w = w + v
m = m + 1
Next oeins


'Arrayelemente aufsummieren (Summe aller N)
For ozwei = 1 To azwei
f = f + arrzwei(n)
va = arrzwei(n) * arrzwei(n) 'Arrayelemente quadrieren und summieren
wa = wa + va
n = n + 1
Next ozwei


'Array X * Array Y
For t = 1 To aeins
q = arreins(b) * arrzwei(b)
y = y + q
b = b + 1
Next t
'Cells(10, 10) = y

'X quer ermitteln, Y quer ermitteln
Xquer = e / aeins
'Cells(10, 11) = Xquer
Yquer = f / aeins
'Cells(10, 12) = Yquer

'SX² und SY² ermitteln
SXquadrat = (w / aeins) - (e / aeins) ^ 2
'Cells(14, 6) = SXquadrat
SYquadrat = (wa / azwei) - (f / azwei) ^ 2
'Cells(14, 7) = SYquadrat

'Cov(X,Y) ermitteln
Cov = (y / aeins) - ((e / aeins) * (f / azwei))
'Cells(17, 6) = Cov

'R ermitteln
KorrKoeff = (Cov / (SXquadrat ^ 0.5 * SYquadrat ^ 0.5))
'Cells(17, 7) = KorrKoeff

'R² ermitteln (Bestimmtheitsmaß)
KorrKoeffQuad = (KorrKoeff ^ 2)
'Cells(17, 8) = KorrKoeffQuad

berechnung = KorrKoeffQuad

End Function

nach oben   nach unten

Re: Array
von: Hans W. Hofmann
Geschrieben am: 20.06.2002 - 10:47:38

Hallo Ralf,

zu Deiner Funktion gibt es aus der Sicht eines Informatikers eine ganze Menge zu sagen - würde aber den Rahmen hier sprengen. Ich streiche deshalb die Programmierung und setzte die Formel
=INDEX(RGP(A1:A8;C1:C8;;WAHR);3)
dagegen. Die Bereiche für Deine Zwecke wirst Du ja anpassen können. Der Rest steht in der OH...

Gruß HW

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "variablen zellbereich benennen"