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

logarithmische Interpolation

logarithmische Interpolation
02.01.2007 19:23:46
neo1380
Hallo an alle,
ich habe ein Problem mit einer logarithmischen Interpolation. Ich habe 2 Werte zwischen denen ich interpolieren möchte. Habe es erst in excel mit folgender Formel probiert:
E = A*(1+w)^t
für w = Exp((LN(E)-LN(A))/t) - 1
Dort klappt es perfekt. Nun möchte ich das über VBA machen. Allerdings funktioniert das mit folgender formel leider nicht:
w = (Exp(Application.WorksheetFunction.Ln(Cells(j, 16).Value) - Application.WorksheetFunction.Ln(Cells(i, 4).Value))) / (Cells(j, 14).Value - Cells(j, 13).Value) - 1
Für w spuckt er immer den Wert null aus und nicht den Wert den ich händisch per Excel errechnet habe. Ich hoffe es kann mir jemand helfen. Danke im voraus.
Gruß neo

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

Betreff
Datum
Anwender
Anzeige
AW: logarithmische Interpolation
02.01.2007 20:32:37
ingUR
Hallo, neo,
hier scheint ein Klammerfehler vorzuliegen:
w = (Exp(Application.WorksheetFunction.Ln(Cells(j, 16).Value) - Application.WorksheetFunction.Ln(Cells(i, 4).Value)) / (Cells(j, 14).Value - Cells(j, 13).Value)) - 1
Unabhängig davon könntst Du auch m.E. die VBA-eigene Funktion LOG einsetzen (ohne Apllication.Worksheetfuntion).
Alles ohne weitere Prüfung!
Gruß,
Uwe
AW: logarithmische Interpolation
02.01.2007 20:44:41
neo1380
Hallo Uwe,
danke für deine Antwort, aber das war leider nicht der Bug. Die Log funktion hat meines Wissens eine natürliche Zahl als Basis und nicht e. Daher dieser kleine Umweg. Allerding glaube ich nicht, dass es an der Ln bzw Log Funktion scheitert, sondern eher an der Exp(....) Formel.
Wenn ich das Makro ausführe bekomme ich als ergebnis: 3,59382822616728E-171 im Ergebnisfeld bei einer interpolation von zwei Wertepaaren (3,95 & 3,69) über t = 90
Da muss also etwas mit dem Exponenten nicht stimmen, glaub ich.
Gruß
neo
Anzeige
AW: logarithmische Interpolation
02.01.2007 20:58:22
ingUR
Hallo, neo,
da war ein Fehler in meiner Korrektur, daher hier noch einmal die richtige Klammerung, wie sie sich auch aus der Umformung nach dem Ausgabgsansatz ergbt:
w = Exp((Application.WorksheetFunction.Ln(Cells(j, 16).Value) - Application.WorksheetFunction.Ln(Cells(i, 4).Value)) / (Cells(j, 14).Value - Cells(j, 13).Value) - 1
Sowohl mit dieser, aber auch mit der "VBA"-LOG bekomme ich wie im Zellenformelansatz immer den gleichen Wert:
 
 ABCD
13,953,69900,000757
Formeln der Tabelle
D1 : =EXP((LN(A1)-LN(B1))/C1)-1
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
VBA-Prozedur dazu:
Sub logInterpolation() Dim w w = Exp((Log(Cells(1, 2).Value) - Log(Cells(1, 1).Value)) / Cells(1, 3).Value) - 1 w = Exp((Application.WorksheetFunction.Ln(Cells(1, 2).Value) - _ Application.WorksheetFunction.Ln(Cells(1, 1).Value)) / _ (Cells(1, 3).Value)) - 1 End Sub
Gruß,
Uwe
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige