Herbers Excel-Forum - das Archiv

lineare interpolation von werten

Bild

Betrifft: lineare interpolation von werten
von: arthur

Geschrieben am: 11.03.2005 19:47:40
habe hier im forum einen beitrag gefunden der eine lineare interpolation zwischen zwei werten einer spalte durchführt. leider binhalten meine spalten mehrere werte die interpoliert werden müssen, z.b.:
a1 2
a2
a3
a4 5
a5
a6
a7 10
..
..
würde gerne zwischen a1 und a4 bzw. a4 und a7 interpolieren. die spalte ist natürlich länger. hier das skript aus diesem forum welches die daten in einer spalte, wenn sie nur zwei werte hat interpoliert.
Sub interpolieren_senkr()
Dim betr(100), ziel$
Dim z%, r%, s%, t%, asp%
sp = 1
Do While Cells(1, sp) <> ""
sp = sp + 1
Loop
For s = 1 To sp - 1
ziel = Chr(s + 64) & 65536
z = Range(ziel).End(xlUp).Row
For r = 2 To z
wert1 = Cells(1, s)
If Cells(r, s) = "" Then asp = asp + 1
If Cells(r, s) <> "" Then wert2 = Cells(r, s)
Next r
diff = wert2 - wert1
intp = diff / (asp + 1)
For t = 2 To asp + 1
wert1 = wert1 + intp
Cells(t, s) = wert1
Next t
asp = 0
Next s
End Sub

wie kann ich es ändern damit es zwischen zwei markierten werten interpoliert?
wenn es eine lösung gibt die automatisch funktioniert also ohne markierung wäre ich natürlich dankbar :)
gruß & dank
arthur
Bild

Betrifft: AW: lineare interpolation von werten
von: Björn B.

Geschrieben am: 13.03.2005 13:07:47
Hallo Arthur,
versuch's mal hiermit:
Sub interpol()
Spalte = ActiveCell.Column
Ende_Bereich = Cells(65536, Spalte).End(xlUp).Row
Do
Do
Anfang_Bereich = Cells(Ende_Bereich, Spalte).End(xlUp).Row
If Not IsEmpty(Cells(Anfang_Bereich + 1, Spalte)) Or IsEmpty(Cells(Anfang_Bereich, Spalte)) Then
Ende_Bereich = Anfang_Bereich
If Ende_Bereich = 1 Then Exit Do
End If
Loop Until IsEmpty(Cells(Anfang_Bereich + 1, Spalte))
Differenz = Cells(Ende_Bereich, Spalte) - Cells(Anfang_Bereich, Spalte)
Teiler = Ende_Bereich - Anfang_Bereich
For Zeile = Anfang_Bereich + 1 To Ende_Bereich - 1
Cells(Zeile, Spalte) = Cells((Zeile - 1), Spalte) + Differenz / Teiler
Next Zeile
Loop Until Anfang_Bereich = 1
End Sub


Das Makro interpoliert die Spalte, in der die aktive Zelle ist.
Gruß
Björn
Bild

Betrifft: AW: lineare interpolation von werten
von: schubert
Geschrieben am: 13.03.2005 16:08:40
vielen dank !!!!!! funktioniert bestens.
hast mir eine große manuelle aufarbeitung von daten erspart :)
Bild

Betrifft: Danke für die Rückmeldung - o. T.
von: Björn B.
Geschrieben am: 13.03.2005 17:42:23
 Bild
Excel-Beispiele zum Thema "lineare interpolation von werten"
Anzeigen von Werten und Formeln Zellen bei Minuswerten schraffieren
MsgBox mit Werten aus geschlossener Arbeitsmappe Wiederherstellung des alten Zellinhaltes bei unerlaubten Werten
Stempelkarten auswerten Übernahme von Werten mit "x" in eine zweite Tabelle
Mit TextBox-Werten in UserForm rechnen Wahrheitsprüfung einer mit Zellwerten zusammengestzten Formel
Fußballwette auswerten Assistent zum Dialog aufrufen und Eingaben auswerten