Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
912to916
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
912to916
912to916
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sverweis mit Interpolation

Sverweis mit Interpolation
11.10.2007 13:49:15
Martin
Hallo,
Gibt es die Möglichkeit zwischen den Tabellenwerten (alles Zahlen, keine Texte) auf die Sverweis zugreift linear zu interpolieren? D.h. der gesuchte Wert ist nicht in der Suchspalte enthalten, sondern liegt "zwischen" 2 Zeilen. Dann soll zwischen den beiden dazugehörigen (Zahlen-)Werten linear interpoliert werden. Also:
Tabelle:
1 10
2 20
Suche nach 1,2 muss dann 12 ergeben.
Danke euch.
Martin

29
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sverweis mit Interpolation
11.10.2007 14:04:00
Christian
Hallo Martin,
als Ansatz:
Tabelle2

 ABCDE
1110 1,212
2220   
3330   
4440   
5550   
6660   
7770   
8880   
9990   
1010100   
1111110   
1212120   
1313130   
1414140   
1515150   
1616160   
1717170   
1818180   
1919190   
2020200   
2121210   
2222220   
2323230   
2424240   
2525250   

Formeln der Tabelle
ZelleFormel
E1=WENN(ISTNV(SVERWEIS(D1;A1:B25;2;0)); D1*SVERWEIS(D1;A1:B25;2;1); SVERWEIS(D1;A1:B25;2;0))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
MfG Christian

Anzeige
AW: Sverweis mit Interpolation
11.10.2007 14:32:00
Martin
Danke, aber ich glaube so klappt es nicht.
Denn wenn man 2,2 in D1 einsetzt, kommt 4,4 anstatt 22 heraus....
Wenn man bei Sverweis einmal das Ergebnis der höheren und einmal das Ergebnis der tieferen Zeile zurückbekommen könnte, dann könnte ich mir was basteln... Aber so sehr kann man Sverweis wohl nicht "BIEGEN", oder?
Frage ist noch offen.
Wer kann mir helfen?
Martin

AW: Sverweis mit Interpolation
11.10.2007 14:59:47
heikoS
Hallo Martin,
meinst Du das so, wie in Zelle d1?
 ABCD
11101,212
2220  
3330 20
4440 10
5550  
6660  
7770  
8880  
9990  
1010100  

Formeln der Tabelle
ZelleFormel
D1=SVERWEIS(AUFRUNDEN(C1;0); A1:B10;2;)/AUFRUNDEN(C1;0)*C1
D3=SVERWEIS(AUFRUNDEN(C1;0); A1:B10;2;)
D4=SVERWEIS(C1;A1:B10;2)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
In d3 und d4 stehen ´mal zwei Formeln, mit denen Du den größeren und den kleineren Wert suchen lassen kannst.
Klappt´s?
Gruß Heiko

Anzeige
interpolierter Sverweis mit variablen Stufen
11.10.2007 15:12:00
WF
Hi Martin,
=INDEX(B:B;VERGLEICH(D1;A:A))+REST(D1;1)*(INDEX(B:B;VERGLEICH(D1+1;A:A))-INDEX(B:B;VERGLEICH(D1;A:A)) )
Salut WF

AW: interpolierter Sverweis mit variablen Stufen
11.10.2007 15:30:00
Martin
Klappt soweit - aber doch noch nicht so, wie ich es eigentlich brauche: Wenn nämlich das Inkrement nicht 1 ist in Spalte A...
Also die richtige Beispiel-Matrix müßte so aussehn:
1 10
2 20
5 50
13 130
14 140
60 600
1,5 muss 15 bringen; 4 muss 40 bringen; 13,5 muss 135 bringen; 37,5 muss 375 bringen.
Frage ist also immer noch offen...
Danke schon einmal
Martin

AW: interpolierter Sverweis mit variablen Stufen
11.10.2007 16:04:00
heikoS
Hallo Martin,
<ironiemodus>ich find´s prima, wenn die notwendigen Informationen häppchenweise gegeben werden!</ironiemodus>
Warum multiplizierst Du Dein Suchkriterium eigentlich nicht einfach mit 10?
Gruß Heiko

Anzeige
dann wird's komplizierter
11.10.2007 16:24:00
WF
folgende Array-Formel:
{=INDEX(B:B;VERGLEICH(D1;A:A))+((D1-VERGLEICH(D1;A:A))/(MIN(WENN(A1:A99>D1;A1:A99))-VERGLEICH(D1; A:A)))*(INDEX(B:B;VERGLEICH(MIN(WENN(A1:A99>D1;A1:A99));A:A;0))-INDEX(B:B;VERGLEICH(D1;A:A))) }
Salut WF

AW: dann wird's komplizierter
11.10.2007 17:16:34
Martin
Hut ab!! Du hast drauf!
Klappt perfekt.
You made my day.
Danke
Martin
PS: Sorry, das ich anfangs nicht präzise genug war :-(

war noch nicht rund
11.10.2007 18:31:00
WF
der Vergleich darf nicht alleine stehen - davor muß noch der Index.
So sollte es endgültig sein:
{=INDEX(B:B;VERGLEICH(D1;A:A))+((D1-INDEX(A:A;VERGLEICH(D1;A:A)))/(MIN(WENN(A1:A99>D1;A1:A99)) -INDEX(A:A;VERGLEICH(D1;A:A))))*(INDEX(B:B;VERGLEICH(MIN(WENN(A1:A99>D1;A1:A99));A:A;0)) -INDEX(B:B;VERGLEICH(D1;A:A))) }
Salut WF

Anzeige
AW: war noch nicht rund
11.10.2007 20:22:22
Jenny
Hallo,
aber ist mein TREND-Vorschlag da nicht doch etwas einfacher?
Meine Variante ergibt vielleicht nicht immer exakt die gleichen Ergebnisse wie WF's Formel, aber eine lineare Interpolation ist es allemal.
Ich weiß ja nicht, was am Ende wirklich dabei raus kommen soll.
Grüße von Jenny im Excel-Land

Rang hat hier nichts zu suchen!
11.10.2007 21:09:00
WF
Hi Jenny,
einfaches Beispiel:
gib mal in A1 bis A9 die Ziffern 1 bis 9 ein
Suchkriterium ist 4,5 - es interessiert also nur, was in B4 und B5 steht
in B1 bis B8 stehen die Zehner 10 bis 80 und in B9 steht 10.000
Das Ergebnis muß also der Mittelwert von 40 und 50 = 45 sein.
mit =TREND(B1:B9;A1:A9;4,5) erhältst Du 815,8
quod erat demonstrandum
Salut WF

Anzeige
natürlich nicht Rang sondern Trend __o.T.
11.10.2007 21:15:45
WF
.

AW: Rang hat hier nichts zu suchen!
12.10.2007 01:11:04
Jenny
Hallo WF,
du wählst bewusst ein Beispiel, welches mit LINEARER Interpolation überhaupt nix zu tun hat.
Dass in diesem Fall unsere Formeln völlig unterschiedliche Ergebnisse rausschmeißen, ist klar.
Aufgrund der allerersten Anfrage gebe ich dir allerdings recht, denn dort wurde wohl der Wert verlangt, der sich auf den nächstkleineren und -größeren bezieht.
Den mathematischen (qualitativen) Wert dieser linearen Interpolation lasse ich aber mal dahin gestellt.
Grüße von Jenny im Excel-Land

AW: Rang hat hier nichts zu suchen!
12.10.2007 01:36:26
Daniel
Hi Jenny
die Aufgabenstellung macht nur dann Sinn, wenn die Werte nicht-linear sind.
wenn alle Werte linear wären, wäre es viel sinnvoller, die Zwischenwerte durch eine Formel zu berechnen.
hier mal ein beispiel, wo die dargestellete Lösung in einem nichtlinearen System angewendet werden kann:
Gegeben ist das Höhenprofil einer Tour-de-France-Etappe, wobei die Höhen mit kilometerangaben in einer Tabelle dargestellt werden.
In Flachstücken wird die Höhe alle 5 km angegeben, in Bergstrecken jeden kilometer
km höhe
------------
0 200
5 210
10 208
11 250
12 310
13 280
18 250
23 255
24 300
25 350
wenn du jetzt bestimmen willst, wie hoch die Fahrer z.B. bei km 20 waren, geht das im prinzip nur über die Interpolation zwischen den beiden gegebenen Punkten bei km 18 und km 23.
ist zwar auch nur eine näherung, aber solange es keinen mathematisch berschreibbaren zusammenhang gibt, ist das die einzige Möglichkeit.
Gruß, Daniel

Anzeige
AW: Rang hat hier nichts zu suchen!
12.10.2007 04:40:04
Jenny
Hallo Daniel,
aber umgekehrt stellt sich die Frage, ob bei deinem ( oder WF's) Beispiel eine LINEARE Optimierung überhaupt Sinn macht. Wenn die Wertepaare keinen linearen Zusammenhang aufweisen, ist eine lineare Interpolation doch sowieso Quatsch, genau wie das Beispiel einer Bergetappe:
Wenn ich auf 234nN (normal Null) starte und auf 234nN wieder lande, dann habe ich z.B. im physikalischen Sinne keine "Arbeit" bewältigt; egal ob Berg- oder Flachetappe. Es kommt darauf an, welches Ergebnis gewünscht ist!
Grüße von Jenny im Excel-Land

AW: Rang hat hier nichts zu suchen!
12.10.2007 20:43:00
Daniel
Hi
es kommt darauf an, daß man die Anzahl der Messpunkte sowie deren Abstand günstig wählt.
bei einer Radetappe von über 200 km Länge sind 2 Messpunkte (Start/Ziel) schon etwas wenig, aber wenn du für jeden KM einen Meßpunkt hast, dann kann man schon relativ sinnvoll Zwischenwerte zwischen 2 Messpunkten interpolieren.
Oder ich lege einen Messpunkt in jeden Umkehrpunkt (Talsohle, Passhöhe, Sattel), oder an jeden Punkt, an dem sich die Steigung stark ändert, dann kann ich auch relativ Sinnvoll Zwischenwerte interpolieren.
Anderes Beispiel:
du machst ne Versuchsreihe und zeichnest den Verlauf der Außentemperatur auf.
permanent kannst du nicht aufzeichenen, das gibt zu viele Daten.
einmal am Tag messen ist auch zuwenig, also wirst du wohl ein wenig rumexperimentieren müssen, bis du einen geigneten Abstand für die Messungen hast.
Gruß, Daniel

Anzeige
AW: Sverweis mit Interpolation
11.10.2007 16:06:00
Jenny
Hallo Martin,
hilft dir hier nicht die Funktion TREND?
=TREND(B1:B100;A1:A100;D1)
Grüße von Jenny im Excel-Land

AW: Sverweis mit Interpolation
11.10.2007 21:56:36
Daniel
Hi
in deinem beispiel ist sowohl die erste Spalte , wie auch die 2. Spalte streng linear, dh. du könntest deine Zwischenwerte auch einfach über einen Faktor ausrechnen (in deinem Beispiel 10)
da ich aber davon ausgehe, daß du uns nur ein vereinfachtes Beispiel zeigtst, vermute ich, daß die beiden Zahlenreihen nicht streng linear sind, so daß ein Berechnen über Faktoren nicht möglich ist.
du kannst aber folgende Formel verwenden:
(geschrieben für Zahlenreihen in Spalte A und B, der Suchwert steht in D1)
=INDEX(B:B;VERGLEICH(D1;A:A))+(INDEX(B:B;VERGLEICH(D1;A:A)+1)-INDEX(B:B;VERGLEICH(D1;A:A)))*( _ INDEX(A:A;VERGLEICH(D1;A:A)+1)-INDEX(A:A;VERGLEICH(D1;A:A)))*(D1-INDEX(A:A;VERGLEICH(D1;A:A)))/(INDEX(A:A;VERGLEICH(D1;A:A)+1)-INDEX(A:A;VERGLEICH(D1;A:A)))


die Formel sucht in der Liste den nächst grösseren und den nächstkleineren Wert raus und interpliert dann linear zwischen diesen beiden Werten.
Gruß, Daniel

Anzeige
3 1/2 Stunden zu spät
11.10.2007 22:22:00
WF
Hi Daniel,
siehe
"war noch nicht rund" um 18:31
und es kommt bei Dir immer dasselbe raus ?
wahrscheinlich ein Kopierfehler?
Salut WF

AW: 3 1/2 Stunden zu spät
11.10.2007 22:46:00
Daniel
Hi
ich verstehe deinen Einwand nicht so ganz, möchtest du andeuten, daß ich die gleiche Formel gepostet habe wie du?
unsere Formeln haben schon das gleiche Ergebnis, sind aber doch völlig unterschiedlich aufgebaut.
du hast ne Matrix-Formel, die mit STRG-SHIFT-ENTER einzugeben ist, ich hab eine ganz normale Formel.
du verwendest neben Index/Vergleich noch die Funktionen MIN und WENN(), meine Formel kommt ohne das aus.
Falls meine Formel nicht funktioniert, liegt das an dem UNTERSTRICH_ZEILENUMBRUCH den der Forumseditor hier automatisch eingebaut hat.
den müsste man noch entfernen, dann funktionierts.
Da nicht alle Excelanwender mit Matrixformeln vertraut sind (ich mag sie auch nicht), denke ich schon, daß beide Funktionen ihre Daseinsberechtigung haben.
gruß, Daniel

Anzeige
war überhaupt kein Angriff
11.10.2007 23:03:00
WF
Hi Daniel,
mit zu spät meinte ich, daß eine Lösung auf ähnlicher Basis ja vorliegt.
MIN und WENN ist entscheidend, da die Werte in Spalte A dann NICHT aufsteigend sortiert vorliegen müssen: bei 4,2 kann der nächstgrößere Wert 6 Stellen vor oder auch 8 Stellen hinter der 4 stehen.
Salut WF

AW: war überhaupt kein Angriff
11.10.2007 23:16:00
Christian
Hallo WF,
kleiner Einspruch:
Wenn die Werte absteigend sortiert sind, ergibt alles ausser heikos Vorschlag D1*10 einen Fehler!
MfG Christian

stimmt - ganz astrein ist es noch nicht. _ o.T.
11.10.2007 23:25:48
WF
.

AW: war überhaupt kein Angriff
12.10.2007 00:17:01
Daniel
Hi
deswegen hatte ich ja auch gefragt, wie ich deinen Einwand verstehen soll.
meiner Ansicht nach sind Normale Formel und Array-Formel immer grund verschieden, deswegen liegt auch kein ähnlicher Lösungsansatz vor.
Außerdem bevorzuge ich, wenn beide Lösungen ein vergleichbares Ergebnis liefern, die Normale Lösung, weil eine Array-Formel dann nur Nachteile hat:
- unkomfortable Eingabe,
- komplette Spalte als Zellbezug ist nicht möglich (kein A:A)
- ist idR langsamer und hat schwierigkeiten mit grossen Datenmengen
um mal die wichtigsten zu nennen.
und an der Unabhängikeit von der Sortierung hab ich auch Zweifel. Manchmal gibt es richitge Werte, aber manchmal kommt in Unsortieren Tabellen auch ein sehr seltsames Ergebnis raus.
Richtig zuverlässig ist es nicht im unsortierten Zustand auch nicht.
Gruß Daniel

eine Zeile über Dir schreibe ich doch
12.10.2007 00:33:00
WF
"stimmt ganz astrein ist es noch nicht"
liest Du das nicht?
Da muß ich noch fummeln.
WF

AW: eine Zeile über Dir schreibe ich doch
12.10.2007 00:45:47
Daniel
Hi
solange ich selber an einem Text schreibe oder versuche, es in Excel nachzuvollziehen lese oder aktualisiere ich nicht.
was parallel reinkommt, lese ich erst, wenn ich mein Posting abgeschickt habe.
machst du das anders?
Gruß, Daniel

bevor ich was verschicke .....
12.10.2007 01:01:53
WF
Hi Daniel,
..... aktualisiere ich, denn ich finde es saublöd (bei natürlich einfacheren Fragen) als Fünfter mit der identischen Antwort aufzutauchen.
Salut WF

jetzt ist es wasserdicht
12.10.2007 11:56:50
WF
außer bei negativem Suchkriterium - das tu ich mir jetzt aber nicht mehr an:
{=INDEX(B:B;VERGLEICH(MAX((A1:A99<=D1)*A1:A99);A:A;0))+(D1-MAX((A1:A99<=D1)*A1:A99)) /MAX((MIN(WENN(A1:A99>=D1;A1:A99))-MAX((A1:A99<=D1)*A1:A99));1/9^9)*(INDEX(B:B; VERGLEICH(MIN(WENN(A1:A99>=D1;A1:A99));A:A;0))-(INDEX(B:B;VERGLEICH(INDEX(A:A; VERGLEICH(MAX((A1:A99<=D1)*A1:A99);A:A;0));A:A;0)))) }
Salut WF

AW: jetzt ist es wasserdicht
12.10.2007 20:47:02
Daniel
Hi
schön, aber viele aufwand und viele einschränkungen,um ein einfachs DATEN-SORTIEREN-SPALTE A zu vermeiden.
Gruß, Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge