Clever-Excel-Forum

Normale Version: In Tabelle mit verifizierten Werten kleinere Schritte interpolieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
@Sulprobil
@snb

Die Frage ist jetzt welche von beiden Lösung die richtige Lösung liefert, denn die beiden Makros liefern verschiedene Ergebnisse. Ich kann es nicht wirklich mathematisch begründen, aber die Tabelle bzw. die Abstufungen in Sulprobils Lösung sehen für mich realistischer aus.

Deine Lösung ist optisch natürlich erste Sahne. @snb  19

@Sulprobil Wie kann ich denn die Ausgangstabelle um weitere Werte erweitern und neu interpolieren lassen - habe nun einiges versucht, bekomme aber keine korrekte Vorgangsweise zusammen.
Die Abstände sind nicht gleich 30, 35 (+5) 45 (+10), 55 (+10)
Darum fängt meine Tabelle an bei 25.
Schau mal AA702:(Spalte Name: 15) / Zeile Name 95: dort sollte 3071 stehen.
(22.09.2022, 14:50)snb schrieb: [ -> ]Die Abstände sind nicht gleich 30, 35 (+5) 45 (+10), 55 (+10)
Darum fängt meine Tabelle an bei 25.
Schau mal AA702:(Spalte Name: 15) / Zeile Name 95: dort sollte 3071 stehen.

Die Messwerte stimmen überein mit den Positionen, das passt.
D.h. dein Makro kann quasi keine verschieden großen Abstände, oder? 

Das Problem ist einfach, dass ich da nichts umgestalten kann. Die Eckdaten aus meiner Tabelle sind empirisch gemessene Werte anhand derer ich eben interpolieren muss bei genau diesen x- und y-Achsen.

(20.09.2022, 09:40)Sulprobil schrieb: [ -> ]Hallo,

anbei mein Lösungsvorschlag (ohne jede Gewähr, aber ich verwende einen aktuellen Virenscanner):


Viele Grüße,
Bernd

Ich versuche und versuche es - aber ich fühl mich schön langsam zu blöd zur Bedienung deines Makros.  17

@Sulprobil: Anbei findest du einen Screenshot. Meine Mappe mit meinen weiteren Ausführungen kann ich leider nicht hineinsetzen, da empfindliche Daten darin enthalten sind.

In den roten Rechtecken siehst du die Werte, die ich neu hinzugefügt habe. Dann habe ich zuerst für x mit "WAHR" extrapoliert und dann für y mit "WAHR" extrapoliert. Dabei kamen dann diese komischen Werte in den Tabellen heraus und ich verstehe absolut nicht warum.

[attachment=45153]
Hallo odgrg,

Anbei eine Version, die den Aufruf meiner Funktion vereinfachen sollte (wie immer ohne Gewähr, aber ich verwende einen aktuellen Virenscanner).
Die erste lineare Interpolation muss in x-Richtung (horizontal) erfolgen, die zweite in y-Richtung (vertikal).
Schau' Dir bitte genau die verwendeten Formeln an. In Deiner Excel Version solltest Du die Formeln normal eingeben können (ohne Matrixformel Abschluss).
Als Test für eine korrekte bilineare Interpolation könntest Du eingeben:
PHP-Code:
Interpolate Start Increment End Method Extrapolate
x 0 1 10 Linear FALSCH 
y 0 1 10 Linear FALSCH 
 
 
Input 
 0 10 
0 0 10 
10 10 20 
 
 
Intermediate table
interpolate x 
 0 1 2 3 4 5 6 7 8 9 10
0 0 1 2 3 4 5 6 7 8 9 10
10 10 11 12 13 14 15 16 17 18 19 20
 
 
Output table
interpolate y 
 0 1 2 3 4 5 6 7 8 9 10
0 0 1 2 3 4 5 6 7 8 9 10
1 1 2 3 4 5 6 7 8 9 10 11
2 2 3 4 5 6 7 8 9 10 11 12
3 3 4 5 6 7 8 9 10 11 12 13
4 4 5 6 7 8 9 10 11 12 13 14
5 5 6 7 8 9 10 11 12 13 14 15
6 6 7 8 9 10 11 12 13 14 15 16
7 7 8 9 10 11 12 13 14 15 16 17
8 8 9 10 11 12 13 14 15 16 17 18
9 9 10 11 12 13 14 15 16 17 18 19
10 10 11 12 13 14 15 16 17 18 19 20 
Du kannst diese korrekte Interpolation im Tabellenblatt Test_Bilinear nachvollziehen.
Vergleiche gern mit snb's Ansatz.

Have fun,
Bernd
Besten Dank - ich widme mich heute Abend der Thematik, versuche es wieder und melde mich bei Fragen nochmal zurück! Schönen Start in die Woche!

LG
Für mich sieht das ziemlich merkwürdig aus: eine Tabelle mit X-Achse mit Abstände van 2,5 Punkte und Y_Achse mit Abstände von 10 Punkten, und dann nur eine Ausnahme : 30 statt 25.
Mache es dir gemütlich:
Wenn Zelle M6 30/40 Wert 3717 hat und Zelle M7 (35/40) Wert 4186, bedeutet das, dass du nur ändern muß:

M6: 3717 wird 3248  M6= M6- (M7-M6)
A6: wird 25 statt 30

Der Makro bleibt unverändert.
(26.09.2022, 10:52)snb schrieb: [ -> ]Für mich sieht das ziemlich merkwürdig aus: eine Tabelle mit X-Achse mit Abstände van 2,5 Punkte und Y_Achse mit Abstände von 10 Punkten, und dann nur eine Ausnahme : 30 statt 25.
Mache es dir gemütlich:
...
Mache es bitte lieber einmal richtig.
Falls neue Ablesewerte zwischen diesen von Dir berechneten Werten eingegeben würden, müssten alle "gemütlichen" Werte neu berechnet werden.
Der Witz einer (korrekten!) bilinearen Interpolation besteht gerade darin, daß auch nicht-equidistante Ausgangswerte existieren können. Die Formeln dafür sind recht simpel. Schon drei Punkte, die nicht auf einer Geraden liegen, spannen eine Ebene auf.
(27.09.2022, 13:36)Sulprobil schrieb: [ -> ]Mache es bitte lieber einmal richtig.
Falls neue Ablesewerte zwischen diesen von Dir berechneten Werten eingegeben würden, müssten alle "gemütlichen" Werte neu berechnet werden.
Der Witz einer (korrekten!) bilinearen Interpolation besteht gerade darin, daß auch nicht-equidistante Ausgangswerte existieren können. Die Formeln dafür sind recht simpel. Schon drei Punkte, die nicht auf einer Geraden liegen, spannen eine Ebene auf.

Hallo Sulprobil,

ich möchte die Tabelle nun für ein weiteres Produkt verwenden und muss diese daher nun gemäß des folgenden Bildes erweitern.

[attachment=46915]

Ich habe alles für mich logische versucht, aber es haut mit den Erweiterungen in x- und y-Richtung leider nicht hin.

Ich habe die Input-Tabelle in x- und y-Richtung angepasst und erweitert. Oben in Start- und Endwerte angepasst und die x- und y-Achse auch in der intermediate- und output-table angepasst. Dann habe ich meine neuen Werte als in die Input-Tabelle kopiert. Es wird zwar interpoliert, aber in x-Richtung nur bis 37,5 und in y-Richtung nur bis 80 - ich kann mir nicht erklären warum.

Bitte um Hilfe.

Grüße
odgrg
Seiten: 1 2