Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
584to588
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
584to588
584to588
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

lineare interpolation von werten

lineare interpolation von werten
11.03.2005 19:47:40
werten
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

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: lineare interpolation von werten
13.03.2005 13:07:47
werten
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
Anzeige
AW: lineare interpolation von werten
13.03.2005 16:08:40
werten
vielen dank !!!!!! funktioniert bestens.
hast mir eine große manuelle aufarbeitung von daten erspart :)
Danke für die Rückmeldung - o. T.
13.03.2005 17:42:23
Björn

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige