Guten Morgen Thomas,
Hier mal ein kleines Beispiel, das dies veranschaulichen soll.
Du gibts Dir sehr viel Mühe, ich werde schon wieder müde des daran Arbeitens, es ist ja nur eine kleine Unschönheit (das extra Kopieren müssen). Ich muss nämlich langsam mal wieder was anderes machen. Trotzdem … weiter geht’s …
Markiere den Bereich D2:F6 , gib die unten stehende Formel ein
und schliesse als Matrixformal ab.
Das funktioniert nicht bei mir: Der Teil {1\2} wird als Fehler abgewiesen.
Benutzte Formeln:
B2 : =ZUFALLSBEREICH(1;100)
Diese Funktion mag mein Excel auch nicht.
Benutzte Matrixformeln:
D2:F6 : {=RGP($B$2:blush:B$11;$A$2:blush:A$11^{1\2};WAHR;WAHR)}
Wie gesagt, die wird mit Fehler abgewiesen. Das „Strg+Shift+Enter“ kenne ich natürlich, habe ich schon oft benutzt.
Hier meine Zahlen/Wertepaare:
89 -12,0
98 -10,0
103 -8,5
107 -7,5
120 -4,7
141 -0,3
143 0,5
145 1,0
153 3,7
161 5,2
166 7,0
173 10,0
184 12,0
206 20,5
208 20,0
212 22,0
215 24,3
219 25,2
220 26,0
222 26,2
225 27,5
Links sind die „Rohwerte“ (Rubrikenachse) in Spalte A, rechts die jeweils zugehörigen „Fertigwerte“ in °C (Größenachse) in Spalte B. Dafür mache ich ein Punktdiagramm mit Trendlinie. Als Gleichung dazu ergibt sich
y = 0,000770x2 + 0,044298x - 21,522096
mit
R2 = 0,998799
als Bestimmtheitsmaß, also sehr gut. Diese Formel kopiere ich in eine Zelle namens
TA\_Gleichung
TA wie Außentemperatur. In drei Zellen (darunter) trage ich meine Function zum Extrahieren der Koeffizienten ein:
= poly\_koeffizienten() + JETZT()\*0
Alle Zellen sind als Standard formatiert.
Die Function sieht so aus:
Function poly\_koeffizienten()
'Polynom-Koeffizienten aus der Trendgleichung 2. Grades erzeugen.
'Die Poly-Gleichung muss aus dem Diagramm in die Tabelle kopiert werden.
'
'Poly-Gleichung: y = koeffizient\_1 \* x2 + koeffizient\_2 \* x - 24,9998855
' i\_koeff = 0 1 2
Dim ergebnis\_feld!(3)
Dim i1%, z1$, i\_koeff%, z\_koeff$
'-------------------------------------------------------------------------
i\_koeff = 0
z\_koeff = ""
poly\_koeffizienten = "#?"
For i1 = 4 To Len([TA\_Gleichung]) 'Start beim ersten Koeff. hinter dem Gleichheitszeichen
z1 = Mid([TA\_Gleichung], i1, 1)
Select Case z1
Case "x"
'x = TA erreicht, der Koeff. ist fertig
ergebnis\_feld(i\_koeff) = z\_koeff
i\_koeff = i\_koeff + 1
i1 = i1 + 1
z\_koeff = ""
Case Else
'Ziffer oder Dez.komma gefunden
z\_koeff = z\_koeff & z1
End Select
Next i1
ergebnis\_feld(i\_koeff) = z\_koeff 'den letzten Koeff. eintragen,
'da er kein "x" hat, wird er oben nicht erfasst!
poly\_koeffizienten = ergebnis\_feld
End Function
Die gewonnenen Koeffizienten verarbeite ich dann weiter. Ich hoffe, Dir gefällt das.
Gruss
Laika