Calc: Interpolation

Hallo,
aus einer Tabelle mit nicht ganz regelmäßigen Werten möchte ich
Ergebniswerte aus Zwischenwerte der Eingangszahlen bilden. So eine
Tabelle sieht bspw. so aus:

  A B C D E
    30 40 50 60
1 1000 801 701 613 528
2 2000 708 608 611 525
2 3000 707 606 519 524
4 4000 706 606 518 523

Wenn jetzt das Wertepaar 43/2700 die in den Spalten-/Zeilenköpfen
gelisteten Eingangswerte bildet, müsste ein Wert zwischen den Zellen C2
und D3 herauskommen, und zwar mit der Gewichtung 30% über Spalte C in
Richtung D und 70% über Zeile 2 in Richtung 3.

Dazu stelle ich mir eine Formel vor, die die beiden Eingangswerte aus
jeweils einer eigenen Zelle entnimmt und dann in der Tabelle schaut, wo
der Eingangswert darunter und der darüber zu finden ist, die relativen
Abstände ermittelt und daraus dann den gewichteten Zwischenwert
errechnet, und das zugleich in X- wie in Y-Richtung. Das scheint mir
einigermaßen komplex, aber der Bedarf daran ist sicher kein Einzelfall.
Gibt es vielleicht irgendwo eine Vorlage, von der ich abkupfern und
lernen kann?

Hallo Boris,

ich habe es noch nicht ganz verstanden.

Die Eingangswerte stehen in der Spalte A und in der Zeile 1?

Wie kommst du zum Wertepaar in deinem Beispiel (43/2700)?

In welcher Zelle soll die Formell liegen?

Wie möchtest du die Gewichtung darstellen? Als Prozentsatz?

Wie werden die Zahlen in den anderen Zellen in die Bereichnung einbezogen?

LG Günther

privat

Hallo,

Hallo Boris,

ich habe es noch nicht ganz verstanden.

Die Eingangswerte stehen in der Spalte A und in der Zeile 1?

ja, aber ich sehe gerade, dass mir da etwas verrutscht ist. Richtig
sollte es so aussehen:

  A B C D E
1 30 40 50 60
2 1000 801 701 613 528
3 2000 708 608 611 525
4 3000 707 606 519 524
5 4000 706 606 518 523

Wie kommst du zum Wertepaar in deinem Beispiel (43/2700)?

Es müsste ein Mittelwert sein, der zwischen Spalte C und D sowie
zwischen Zeile 3 und 4 liegt, also zwischen Zelle C3 und D4, und zwar
entsprechend näher zu Spalte C und näher zu Zeile 4, entsprechend der
Abstände der eingegebenen Werte zu den Überschriftswerten der Spalten
und Zeilen. Ich hoffe, mich nicht gar zu unklar auszudrücken...

In welcher Zelle soll die Formell liegen?

Egal, irgendwo außerhalb, darunter oder von mir aus auf einem eigenen
Tabellenblatt.

Wie möchtest du die Gewichtung darstellen? Als Prozentsatz?

Die Gewichtung ist nur ein Zwischenschritt; da er nicht ausgegeben
werden muss, kann es ein Prozentsatz sein oder etwas anderes, mit dem
sich gut rechnen lässt. Ausgegeben werden soll nur das Ergebnis, im
obigen Beispiel vielleicht (nur grob geschätzt) "563,5" oder sowas in
der Art.

Wie werden die Zahlen in den anderen Zellen in die Bereichnung einbezogen?

Es sind Tabellen mit vielen Spalten und Zeilen, aus denen nur die
jeweils zutreffende Interpolation für ein Wertepaar herausgesucht und
berechnet werden muss. Diese Tafeln enthalten sozusagen fix vorgegebene
empirisch ermittelte Werte, aus denen die genaueren Zwischenwerte
errechnet werden sollen.

Hallo Boris,

privat

Hallo,

Hallo Boris,

ich habe es noch nicht ganz verstanden.

Die Eingangswerte stehen in der Spalte A und in der Zeile 1?

ja, aber ich sehe gerade, dass mir da etwas verrutscht ist. Richtig
sollte es so aussehen:

  A B C D E
1 30 40 50 60
2 1000 801 701 613 528
3 2000 708 608 611 525
4 3000 707 606 519 524
5 4000 706 606 518 523

Wie kommst du zum Wertepaar in deinem Beispiel (43/2700)?

Es müsste ein Mittelwert sein, der zwischen Spalte C und D sowie
zwischen Zeile 3 und 4 liegt, also zwischen Zelle C3 und D4, und zwar
entsprechend näher zu Spalte C und näher zu Zeile 4, entsprechend der
Abstände der eingegebenen Werte zu den Überschriftswerten der Spalten
und Zeilen. Ich hoffe, mich nicht gar zu unklar auszudrücken...

Meine Frage ging in eine andere Richtung. Die beiden Werte 43 und 2700
stehen wo? Der erste Werte bezieht sich immer auf die Zeile 1 und der
zweite Wert immer auf die Spalte A (Ausgangswerte)?

In welcher Zelle soll die Formell liegen?

Egal, irgendwo außerhalb, darunter oder von mir aus auf einem eigenen
Tabellenblatt.

Wie möchtest du die Gewichtung darstellen? Als Prozentsatz?

Die Gewichtung ist nur ein Zwischenschritt; da er nicht ausgegeben
werden muss, kann es ein Prozentsatz sein oder etwas anderes, mit dem
sich gut rechnen lässt. Ausgegeben werden soll nur das Ergebnis, im
obigen Beispiel vielleicht (nur grob geschätzt) "563,5" oder sowas in
der Art.

Die Gewichtung liegt im Viereck (x,y) zwischen 608, 611, 606, 519?

> Hallo,
> aus einer Tabelle mit nicht ganz regelmäßigen Werten möchte ich
> Ergebniswerte aus Zwischenwerte der Eingangszahlen bilden. So eine
> Tabelle sieht bspw. so aus:
>
> A B C D E
> 30 40 50 60
> 1 1000 801 701 613 528
> 2 2000 708 608 611 525
> 2 3000 707 606 519 524
> 4 4000 706 606 518 523

Ähm; eine Zeile 0 gibt es nicht; das muss so ausschauen:

   A B C D E
1 30 40 50 60
2 1000 801 701 613 528
3 2000 708 608 611 525
4 3000 707 606 519 524
5 4000 706 606 518 523

>
> Wenn jetzt das Wertepaar 43/2700 die in den Spalten-/Zeilenköpfen
> gelisteten Eingangswerte bildet, müsste ein Wert zwischen den Zellen C2
> und D3 herauskommen,

Und dementprechend C3 und D4 heißen.

> und zwar mit der Gewichtung 30% über Spalte C in
> Richtung D und 70% über Zeile 2 in Richtung 3.

Genau so würde ich auch vorgehen; d. h. zuerst würde ich vertikal
zwischen C3 und C4 sowie zwischen D3 und D4 linear interpolieren, und
dann horizontal zwischen diesen beiden Zwischenwerten (man könnte
natürlic hauch umgekehrt vorgehen, das Ergebnis ist das gleiche)). Das
geht entweder über Hilfszellen oder in einem Makro.

Ich stell mal die erstere Variante vor, ausführlich, zum verstehen.
Angenommen, als Hilfszellen wird die Spalte H verwendet, und die
Eingangswerte stehen in H1 bzw. H2:

H1 = 43
H2 = 2700

Dann kann in H3 erst mal die vertikale Position des unteren Grenzwertes,
und folgend die beiden Grenzwerte sowie den Abstand (dahinter als String
immer der Zellwert):

H3 = VERGLEICH(H$2;A2:A5;1) "2"
H4 = VERSCHIEBUNG($A$1;H3;0) "2000"
H5 = VERSCHIEBUNG($A$1;H3+1;0) "3000"
H6 = H5-H4 "1000"

Und der relative Abstand:

H7 = (H2-H4)/H6 "0,7"

Und das gleiche mit den horizontalen Werten:

H8 = VERGLEICH(H$1;B1:E1;1) "2"
H9 = VERSCHIEBUNG($A$1;0;H7) "40"
H10 = VERSCHIEBUNG($A$1;0;H7+1) "50"
H11 = H9-H8 "10"
H12 = (H1-H9)/H11 "0,3"

Jetzt kannst du die Ausgangswerte Zwischenspeichern:

H13 = VERSCHIEBUNG($A$1;H$3;H$7) "608"
H14 = VERSCHIEBUNG($A$1;H$3+1;H$7) "606"
H15 = VERSCHIEBUNG($A$1;H$3;H$7+1) "611"
H16 = VERSCHIEBUNG($A$1;H$3+1;H$7+1) "519"

Jetzt kannst du vertikal interpolieren:

H17 = H13+((H14-H13)*H7) "606,6" (entspricht sozusagen Zelle C4,3)
H18 = H15+((H16-H15)*H7) "546,6" (entspricht sozusagen Zelle D4,3)

Und horizontal:

=H17+((H18-H17)*H12) "588,6" (entspricht sozusagen Zeile 3,7)

> Dazu stelle ich mir eine Formel vor,

/Eine/ Formel reicht da nicht, das ist schon eine komplexerer
Algorithmus. Und schreit eigentlich auch nach einem Makro, aber dafür
muss man etwas Erfahrung haben (die ich vorsichtshalber erst mal nicht
voraussetze).

> die die beiden Eingangswerte aus
> jeweils einer eigenen Zelle entnimmt und dann in der Tabelle schaut, wo
> der Eingangswert darunter und der darüber zu finden ist, die relativen
> Abstände ermittelt und daraus dann den gewichteten Zwischenwert
> errechnet, und das zugleich in X- wie in Y-Richtung. Das scheint mir
> einigermaßen komplex, aber der Bedarf daran ist sicher kein Einzelfall.

Doch; eindimensionales Interpolieren ist mir gelegentlic hschon mal
unter gekommen, aber du bist der erste, der das zweidimensional möchte.

> Gibt es vielleicht irgendwo eine Vorlage, von der ich abkupfern und
> lernen kann?

Ich fürchte, nein.

Wolfgang

Hallo,

  A B C D E
1 30 40 50 60
2 1000 801 701 613 528
3 2000 708 608 611 525
4 3000 707 606 519 524
5 4000 706 606 518 523

Meine Frage ging in eine andere Richtung. Die beiden Werte 43 und 2700
stehen wo? Der erste Werte bezieht sich immer auf die Zeile 1 und der
zweite Wert immer auf die Spalte A (Ausgangswerte)?

Wo man die hinschreibt, ist ja erst einmal egal, am besten irgendwo
außerhalb der Tafel, darunter, daneben oder auf einem eigenen
Tabellenblatt. Die Reihenfolge sollte auch beliebig sein, man sollte die
Werte nur nicht vertauschen, am besten beschriften.

Die Gewichtung liegt im Viereck (x,y) zwischen 608, 611, 606, 519?

Genau. Nur eben nicht genau im arithmetischen Mittel, sondern meist wohl
mehr am Rand hin zu einer bzw. zwei der Zellen.

Hallo Boris,

das ist zu komplex für eine Formel. Wolfgang hat die Schritte schon
detailliert dargestellt. Ein Makro würde helfen, sonst entsprechende
Zwischenschritte.

LG Günther

privat

Hallo Boris,

es geht schon, ist aber sehr sehr unübersichtlich. Wenn in deinem
Beispiel auf I1 43 liegt und auf 2700 auf I2, dann lautet die Formel:

=VERSCHIEBUNG($A$1;I$3;I$8)+((VERSCHIEBUNG($A$1;I$3+1;I$8)-(VERSCHIEBUNG($A$1;I$3;I$8)))*(H2-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0))/(VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1)+1;0)-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0)))+((VERSCHIEBUNG($A$1;I$3;I$8+1)+((VERSCHIEBUNG($A$1;I$3+1;I$8+1)-VERSCHIEBUNG($A$1;I$3;I$8+1))*(H2-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0))/(VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1)+1;0)-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0)))-(VERSCHIEBUNG($A$1;I$3;I$8)+((VERSCHIEBUNG($A$1;I$3+1;I$8)-(VERSCHIEBUNG($A$1;I$3;I$8)))*(H2-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0))/(VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1)+1;0)-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0)))))*(I1-VERSCHIEBUNG($A$1;0;VERGLEICH(I$1;B1:E1;1)))/(VERSCHIEBUNG($A$1;0;VERGLEICH(I$1;B1:E1;1)+1)-VERSCHIEBUNG($A$1;0;VERGLEICH(I$1;B1:E1;1))))

LG Günther

privat

Hallo Günther,

Hallo Boris,

es geht schon, ist aber sehr sehr unübersichtlich. Wenn in deinem
Beispiel auf I1 43 liegt und auf 2700 auf I2, dann lautet die Formel:

=VERSCHIEBUNG($A$1;I$3;I$8)+((VERSCHIEBUNG($A$1;I$3+1;I$8)-(VERSCHIEBUNG($A$1;I$3;I$8)))*(H2-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0))/(VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1)+1;0)-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0)))+((VERSCHIEBUNG($A$1;I$3;I$8+1)+((VERSCHIEBUNG($A$1;I$3+1;I$8+1)-VERSCHIEBUNG($A$1;I$3;I$8+1))*(H2-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0))/(VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1)+1;0)-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0)))-(VERSCHIEBUNG($A$1;I$3;I$8)+((VERSCHIEBUNG($A$1;I$3+1;I$8)-(VERSCHIEBUNG($A$1;I$3;I$8)))*(H2-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0))/(VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1)+1;0)-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0)))))*(I1-VERSCHIEBUNG($A$1;0;VERGLEICH(I$1;B1:E1;1)))/(VERSCHIEBUNG($A$1;0;VERGLEICH(I$1;B1:E1;1)+1)-VERSCHIEBUNG($A$1;0;VERGLEICH(I$1;B1:E1;1))))

ich bin platt... :wink:

Was gehört noch in H2 und die Spalte I hinein? Die sind ja sonst erst
einmal leer, und so komme ich beim Test auf den sicher unzutreffenden
Wert -1.853,6

Sorry Boris,

meine Formel hat Schlampigkeitsfehler.

Deine Tabelle - I1=43 - I2=2700

Die korr. Formel:

=VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);VERGLEICH(I$1;B1:E1;1))+((VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1)+1;VERGLEICH(I$1;B1:E1;1))-(VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);VERGLEICH(I$1;B1:E1;1))))*(I2-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0))/(VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1)+1;0)-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0)))+((VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);VERGLEICH(I$1;B1:E1;1)+1)+((VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1)+1;VERGLEICH(I$1;B1:E1;1)+1)-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);VERGLEICH(I$1;B1:E1;1)+1))*(I2-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0))/(VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1)+1;0)-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0)))-(VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);VERGLEICH(I$1;B1:E1;1))+((VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1)+1;VERGLEICH(I$1;B1:E1;1))-(VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);VERGLEICH(I$1;B1:E1;1))))*(I2-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0))/(VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1)+1;0)-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0)))))*(I1-VERSCHIEBUNG($A$1;0;VERGLEICH(I$1;B1:E1;1)))/(VERSCHIEBUNG($A$1;0;VERGLEICH(I$1;B1:E1;1)+1)-VERSCHIEBUNG($A$1;0;VERGLEICH(I$1;B1:E1;1))))

Versuche es nochmal. Das korrekte Ergebnis lautet: 588,6

LG Günther

privat

Hallo Wolfgang,
vielen Dank für Deine Mühe; es hat für mich einige Zeit gebraucht, um
das nachzuvollziehen. Ein paar kleine Fehler habe ich bereinigt, es
sieht jetzt so aus:

   A B C D E
1 30 40 50 60
2 1000 801 701 613 528
3 2000 708 608 611 525
4 3000 707 606 519 524
5 4000 706 606 518 523

H1 = 43
H2 = 2700

H3 = VERGLEICH(H$2;A2:A5;1) "2"
H4 = VERSCHIEBUNG($A$1;H3;0) "2000"
H5 = VERSCHIEBUNG($A$1;H3+1;0) "3000"
H6 = H5-H4 "1000"
H7 = (H2-H4)/H6 "0,7"
H8 = VERGLEICH(H$1;B1:E1;1) "2"
H9 = VERSCHIEBUNG($A$1;0;H7) "40"
H10 = VERSCHIEBUNG($A$1;0;H7+1) "50"
H11 = H9-H8 "10"
H12 = (H1-H9)/H11 "0,3"
H13 = VERSCHIEBUNG($A$1;H$3;H$7) "608"
H14 = VERSCHIEBUNG($A$1;H$3+1;H$7) "606"
H15 = VERSCHIEBUNG($A$1;H$3;H$7+1) "611"
H16 = VERSCHIEBUNG($A$1;H$3+1;H$7+1) "519"

Jetzt kannst du vertikal interpolieren:

H17 = H13+((H14-H13)*H7) "606,6" (entspricht sozusagen Zelle C4,3)
H18 = H15+((H16-H15)*H7) "546,6" (entspricht sozusagen Zelle D4,3)

Und horizontal:

=H17+((H18-H17)*H12) "588,6" (entspricht sozusagen Zeile 3,7)

Daraus habe ich folgende Spalte H gemacht:

45 X
2500 Y
2 =VERGLEICH(H$2;A2:A5;1) vertikal: wievielte Zeile?
2000 =VERSCHIEBUNG($A$1;H3;0) vertikal: Wert dieser Zeile
3000 =VERSCHIEBUNG($A$1;H3+1;0) vertikal: Wert der nächsten Zeile
1000 =H5-H4 vertikal: Differenz / Abstand dieser Werte
0,5 =(H2-H4)/H6 vertikal: Anteiliger Abstand vom ersten Wert in Richtung zweiter Wert
2 =VERGLEICH(H$1;B1:E1;1) horizontal: wievielte Spalte?
40 =VERSCHIEBUNG($A$1;0;H8) horizontal: Wert dieser Spalte
50 =VERSCHIEBUNG($A$1;0;H8+1) horizontal: Wert der nächsten Spalte
10 =H10-H9 horizontal: Differenz / Abstand dieser Werte
0,5 =(H1-H9)/H11 horizontal: Anteiliger Abstand vom ersten Wert in Richtung zweiter Wert
608 =VERSCHIEBUNG($A$1;H$3;H$8) Wert der Zelle für untere Zeile, untere Spalte (links oben)
606 =VERSCHIEBUNG($A$1;H$3+1;H$8) Wert der Zelle für obere Zeile, untere Spalte (links unten)
611 =VERSCHIEBUNG($A$1;H$3;H$8+1) Wert der Zelle für untere Zeile, obere Spalte (rechts oben)
519 =VERSCHIEBUNG($A$1;H$3+1;H$8+1) Wert der Zelle für obere Zeile, obere Spalte (rechts unten)
607 =H13+((H14-H13)*H7) vertikal: Anteiliger Abstand vom ersten Wert in Richtung zweiter Wert (links)
565 =H15+((H16-H15)*H7) vertikal: Anteiliger Abstand vom ersten Wert in Richtung zweiter Wert (rechts)
586 =H17+((H18-H17)*H12) horizontal: Anteiliger Abstand vom ersten Wert in Richtung zweiter Wert (anteilig gemittelt)

Damit komme ich auch auf dieselben Werte wie Du.
Allerdings verwirrt mich eine Probe: wenn ich die Werte 45 und 2500
einsetze, müsste ich horizontal wie vertikal genau in der Mitte zwischen
den jeweiligen Zeilen und Spalten landen. Dementsprechend müsste das
Ergebnis dem einfachen Mittelwert zwischen den Zellen C3 und D4
entsprechen, also 563,5 -das tut es aber nicht. Mein Verdacht dabei ist,
dass es mit obigem Verfahren davon abhängt, in welcher Reihenfolge
(horizontal oder vertikal) man die Zwischenwerte ermittelt.

Denke ich falsch, oder muss noch daran gefeilt werden?

Hallo,

Die korr. Formel:

=VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);VERGLEICH(I$1;B1:E1;1))+((VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1)+1;VERGLEICH(I$1;B1:E1;1))-(VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);VERGLEICH(I$1;B1:E1;1))))*(I2-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0))/(VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1)+1;0)-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0)))+((VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);VERGLEICH(I$1;B1:E1;1)+1)+((VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1)+1;VERGLEICH(I$1;B1:E1;1)+1)-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);VERGLEICH(I$1;B1:E1;1)+1))*(I2-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0))/(VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1)+1;0)-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0)))-(VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);VERGLEICH(I$1;B1:E1;1))+((VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1)+1;VERGLEICH(I$1;B1:E1;1))-(VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);VERGLEICH(I$1;B1:E1;1))))*(I2-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0))/(VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1)+1;0)-VERSCHIEBUNG($A$1;VERGLEICH(I$2;A2:A5;1);0)))))*(I1-VERSCHIEBUNG($A$1;0;VERGLEICH(I$1;B1:E1;1)))/(VERSCHIEBUNG($A$1;0;VERGLEICH(I$1;B1:E1;1)+1)-VERSCHIEBUNG($A$1;0;VERGLEICH(I$1;B1:E1;1))))

Versuche es nochmal. Das korrekte Ergebnis lautet: 588,6

Genau: es ist das gleiche Ergebnis wie bei Wolfgang.
Damit stellt sich auch dieselbe Frage: bei den Eingangswerten 45 und
2500 müsste man diagonal mitteln können und käme dann 563,5...
Wie erklärt sich das?

vielen Dank für Deine Mühe; es hat für mich einige Zeit gebraucht, um
das nachzuvollziehen.

Dachte ich mir schon. Deswegen hab ich es ja so ausführlich dargestellt,
damit man wenigstens eine geringe Chance hat, das nach zu vollziehen.
Zumal die verwendeten Funktionen VERGLEICH und VERSCHIEBUNG ja auch
nicht mehr unbedingt ganz trivial sind.

Damit komme ich auch auf dieselben Werte wie Du.
Allerdings verwirrt mich eine Probe: wenn ich die Werte 45 und 2500
einsetze, müsste ich horizontal wie vertikal genau in der Mitte zwischen
den jeweiligen Zeilen und Spalten landen. Dementsprechend müsste das
Ergebnis dem einfachen Mittelwert zwischen den Zellen C3 und D4
entsprechen, also 563,5 -das tut es aber nicht.

Richtig; Weil du da zwar die /eine/ "Linie", C3-D4, berücksichtigst,
aber nicht die /andere/ Linie, C4-D3. Der Schnittpunkt zweier solcher
Linien ist bei einem /regelmäßigen/ Quadrat oder Viereck auch der
Mittelpunkt der Diagonalen, ja. Aber deien Daten bilden kein
regelmäßiges Viereck, sondern irgend ein völlig unregelmäßiges und
verzogenes Viereck.

Stell dir das einfach grafisch vor, oder vielleicht zeichnest du es auch
mal auf, mit den Punkten C3, C4, D3 und D4 als die Ecken eines - erst
mal zum Verständnis - Quadrates. Egal, ob du zuerst die Punkte C' auf
der Seite C3-C4 und D' auf D3-D4 bildest, und dann M' auf der Linie
C'-D', oder ob du zuerst A' auf C3-D3 und B' auf C4-D4 bildest, und dann
M' auf der Linie A'-B', es müssen und werden immer die gleichen
Koordinaten für M' heraus kommen.

Und jetzt stell dir statt eines Quadrates ein Trapez vor, und du wirst
sehen, dass der Schnittpunkt der beiden Diagonalen nicht dem Mittelpunkt
derselben entspricht. Aber die beschriebene Vorgehensweise wird sicher
zum tatsächlichen Schnittpunkt führen. In dem Fall (50%:50%) beschreibt
sie nämlich einfach die Verbindungslinien der Seitenmitelpunkte.

Und das funktioniert auch mit einem völlig verzogenen und schiefen
Viereck, wie es deine Daten bilden. Allerdings nur, wenn du auch
wirklich alle /vier/ Ecken berücksichtigst, und nicht nur /zwei/ davon.
Warum auch sollte 563,5 ((C3+D4)/2) "richtiger" sein als 608,5 ((C4+D3)/2)?

Mein Verdacht dabei ist,
dass es mit obigem Verfahren davon abhängt, in welcher Reihenfolge
(horizontal oder vertikal) man die Zwischenwerte ermittelt.

Nein; probiers aus.

Wolfgang

Hallo,

vielen Dank für Deine Mühe; es hat für mich einige Zeit gebraucht, um
das nachzuvollziehen.

Dachte ich mir schon. Deswegen hab ich es ja so ausführlich dargestellt,
damit man wenigstens eine geringe Chance hat, das nach zu vollziehen.
Zumal die verwendeten Funktionen VERGLEICH und VERSCHIEBUNG ja auch
nicht mehr unbedingt ganz trivial sind.

ach, das geht schon, ich kannte sie bisher nur nicht, weil ich mich noch
nicht damit beschäftigt hatte. Aber jetzt kenne ich sie und weiß auch
gleich, wofür sie gut sind.

Stell dir das einfach grafisch vor, oder vielleicht zeichnest du es auch
mal auf, mit den Punkten C3, C4, D3 und D4 als die Ecken eines - erst
mal zum Verständnis - Quadrates. Egal, ob du zuerst die Punkte C' auf
der Seite C3-C4 und D' auf D3-D4 bildest, und dann M' auf der Linie
C'-D', oder ob du zuerst A' auf C3-D3 und B' auf C4-D4 bildest, und dann
M' auf der Linie A'-B', es müssen und werden immer die gleichen
Koordinaten für M' heraus kommen.

Und jetzt stell dir statt eines Quadrates ein Trapez vor, und du wirst
sehen, dass der Schnittpunkt der beiden Diagonalen nicht dem Mittelpunkt
derselben entspricht. Aber die beschriebene Vorgehensweise wird sicher
zum tatsächlichen Schnittpunkt führen. In dem Fall (50%:50%) beschreibt
sie nämlich einfach die Verbindungslinien der Seitenmitelpunkte.

Ja, klar, das leuchtet ein.

Und das funktioniert auch mit einem völlig verzogenen und schiefen
Viereck, wie es deine Daten bilden. Allerdings nur, wenn du auch
wirklich alle /vier/ Ecken berücksichtigst, und nicht nur /zwei/ davon.
Warum auch sollte 563,5 ((C3+D4)/2) "richtiger" sein als 608,5 ((C4+D3)/2)?

Mein Verdacht dabei ist,
dass es mit obigem Verfahren davon abhängt, in welcher Reihenfolge
(horizontal oder vertikal) man die Zwischenwerte ermittelt.

Nein; probiers aus.

Habe ich: Du hast natürlich recht.

Fein, dann kann ich ja jetzt beruhigt schlafen gehen.
Vielen Dank nochmal, auch an Günther!

Noch was, du solltest Sorge dafür tragen, was passiert, wenn die
abgefragten Werte über die Tabelle hinaus gehen, also <30 oder >60 bzw.
<1000 / >4000 sind. Dann fehlt ja je Wertepaar ein Wert. Am einfachsten
fängst du das mit einer Fehlermeldung ab.

Eleganter wäre natürlich, das nächstliegende "Feld" zu "verlängern",
aber die dafür notwendigen Rechenschritte müsste ich mir selbst erst mal
überlegen.

Wolfgang

Hallo,

vielen Dank für Deine Mühe; es hat für mich einige Zeit gebraucht, um
das nachzuvollziehen.

Dachte ich mir schon. Deswegen hab ich es ja so ausführlich dargestellt,
damit man wenigstens eine geringe Chance hat, das nach zu vollziehen.
Zumal die verwendeten Funktionen VERGLEICH und VERSCHIEBUNG ja auch
nicht mehr unbedingt ganz trivial sind.

ach, das geht schon, ich kannte sie bisher nur nicht, weil ich mich noch
nicht damit beschäftigt hatte. Aber jetzt kenne ich sie und weiß auch
gleich, wofür sie gut sind.

Nicht mal die Hälfte. :wink:

Versuch mal

=SUMME(VERSCHIEBUNG($A$1;2;2;2;2))/4

Wolfgang