Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1148to1152
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
Inhaltsverzeichnis

Lineare Interpolation

Lineare Interpolation
Christian
Hallo bestes Forum,
es geht um lineare Interpolation - ich hab auch bereits eine Lösung entwickelt aber die Formel scheint mir sehr lang zu sein.
Bei einer gegebenen Wertetabelle mit X und Y-Werten suche ich für einen bestimmten X-Wert den zugehörigen Y-Wert.
Das Prinzip ist mir klar: (y2-y1) / (x2-x1) = (y-y1) / (x-x1)
daraus folgt: y = (y2-y1) / (x2-x1) * (x-x1) + y1
wobei ich die nächstkleineren Werte x1 und y1 sowie die nächstgrößeren Werte x2 und y2 mit INDEX und VERGLEICH aus der Wertetabelle ermittelt habe.
Die X-Werte stehen dabei in A2:A32 und die Y-Werte in B2:B32, der vorgegebene X-Wert, zu dem der Y-Wert gesucht wird steht in G2:
Daraus ergibt sich folgende Formel:
=(INDEX($B$2:$B$32;VERGLEICH($G$2;$A$2:$A$32;1)+1)-INDEX($B$2:$B$32;VERGLEICH($G$2;$A$2:$A$32;1))) /(INDEX($A$2:$A$32;VERGLEICH($G$2;$A$2:$A$32;1)+1)-INDEX($A$2:$A$32;VERGLEICH($G$2;$A$2:$A$32;1))) *(G2-INDEX($A$2:$A$32;VERGLEICH($G$2;$A$2:$A$32;1)))+INDEX($B$2:$B$32;VERGLEICH($G$2;$A$2:$A$32;1))
Zur veranschaulichung noch eine Demo-Datei:
https://www.herber.de/bbs/user/69082.xls
Meine Frage ist, geht das nicht kürzer?
vielen Dank vorab für eure Hilfe, Anregungen, ...
Gruß
Christian

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Excelformeln.de
14.04.2010 16:44:30
Christian
hallo Erich,
danke für den Link...
wenn man bei der TREND-Formel die ganzen Spalten betrachtet (so wie auf Excelformeln.de vorgegeben), dann wird die Formel etwas kürzer (290 statt 297 Zeichen).
Setze ich jedoch nur den relevanten Bereich (zB $A$2:$A$32 statt A:A), dann ist die TREND-Formel sogar länger als mein Ansatz.
... trotzdem vielen Dank.
Gruß
Christan
Anzeige
Lineare Interpolation
14.04.2010 19:35:38
Christian
ich stell den Thread mal auf offen - vielleicht hat ja noch jemand 'ne geniale Idee...
Christian
AW: Excelformeln.de
15.04.2010 11:55:38
fcs
Hallo Christian,
Möglichkeit 1:
Verwendung von Bereichsnamen stat Zellbereichen:
G3: =(INDEX(Werte.Y;VERGLEICH($G$2;Werte.X;1)+1)-INDEX(Werte.Y;
VERGLEICH($G$2;Werte.X;1)))/(INDEX(Werte.X;VERGLEICH($G$2;Werte.X;1)+1)-
INDEX(Werte.X;VERGLEICH($G$2;Werte.X;1)))*(G2-INDEX(Werte.X;
VERGLEICH($G$2;Werte.X;1)))+INDEX(Werte.Y;VERGLEICH($G$2;Werte.X;1))
Namen:
Werte.X: =Tabelle1!$A$2:$A$32
Werte.Y: =Tabelle1!$B$2:$B$32

Ein bischen kürzer geht es dann noch, wenn du kürzere, weniger aussagekräftige Namen verwendest.
z.B: W_X und W_Y
Möglichkeit 2: Bereichsnamen + Berechnung des Zeilenindexes in einer 2. Zelle
Der Ausdruck "VERGLEICH($G$2;$A$2:$A$32;1)" kommt in deiner Formel 6 mal vor. Da macht es Sinn, diesen in einer separaten Zelle zu berechnen.
G3: =(INDEX(Werte.Y;H3+1)-INDEX(Werte.Y;H3))/(INDEX(Werte.X;H3+1)-
INDEX(Werte.X;H3))*(G2-INDEX(Werte.X;H3))+INDEX(Werte.Y;H3)
H3: =VERGLEICH($G$2;Werte.X;1)

Gruß
Franz
Anzeige
vielen Dank
15.04.2010 20:41:35
Christian
hallo Franz,
jo, das mit den Namen is' auch noch 'ne Idee.
Und was ich dann mal so probiert habe... man kann ja in einem "Namen" auch gleich ein Teilergebnis berechnen und somit die in der Zelle eingesetze Formel etwas übersichtlicher darstellen im Sinne von:
= (y_2 - y_1) / (x_2 - x_1) * (G2 - x_1) + y_1
...aber egal wie man es angeht - bzgl. Aufwand tut sich da nicht viel.
Ich habe gehofft, das Excel da schon irgend etwas vorgefertigtes bereit hält. Aber wenn schon die Lösungen von "excelformeln.de" nicht bedeutend kürzer oder sogar länger sind als meine Laien-Ansätze, dann gibt's da wohl auch keinen Königsweg (VBA will ich hier vermeiden).
Vielen Dank für deine Tipps - wieder was gelernt
Gruß Christian
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige