Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1752to1756
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

Index-Funktion mit geringstem Abstand

Index-Funktion mit geringstem Abstand
14.04.2020 20:00:58
Paul
Guten Abend,<br>
<br>
ich sitze seit Stunden an dem gleichen Problem, vielleicht kann mir ja hier jemand weiterhelfen. <br>
Ich habe mir schon mehrere Forumsbeiträge zu dem Theme durchgelesen, aber bei mir wird immer der #WERT!-Fehler angezeigt. <br>
Der Benutzer meines Tools soll die Kosten angezeigt bekommen, wenn er die Mengen und Distanzen eingetragen hat. <br>
Dafür habe ich eine Matrix erstellt. Normalerweise würde ich jetzt ganz normal die Index mit der Vergleichs-Funktion benutzen, jedoch kann es sein, dass die eingetragene Menge nicht genau der Matrix-Menge entspricht. In diesen Fällen soll der nächstliegende Wert benutzt werden. Beispiel: Eingetragene Menge: 1.300.000 --> 1.200.000 soll ausgewählt werden. Das gleiche für die Entfernungen. <br>
Ich habe dafür folgende Funktion aufgestellt: ~f~=INDEX(C3:K7;VERGLEICH(MIN(ABS(B3:B7-B10));ABS(B3:B7-B10);0);VERGLEICH(B11;C2:K2;0))~f~
Diese gilt erstmal nur für abweichende Mengen, wenn es funktioniert würde ich das dann auch für die Entfernungen einstellen. <br>
Hier meine Excel:<br>
~f~
Transportkosten Menge <br>
Entfernung 10 100 150 180 250 500 750 800 1.500<br>
500000,00 - - 1 - 25 - - - -<br>
1200000,00 - 1 - - 5 - - 1 -<br>
2500000,00 0,41 - - 1 - 5,34 - - -<br>
10000000,00 0,13 - - 2 - 4,3 7,95 - 15,81<br>
20000000,00 0,08 - - 1,26 - 5,04 - 10,02<br>
<br>
<br>
Menge: 25000000 <br>
Entfernung: 180 <br>
<br>
Kosten: #WERT! <br>
=INDEX(C3:K7;VERGLEICH(MIN(ABS(B3:B7-B10));ABS(B3:B7-B10);0);VERGLEICH(B11;C2:K2;0)) ~f~
Kann mir jemand sagen, warum ich den Fehler bei den Kosten angezeigt bekomme? Anscheinend stimmt was nicht mit dem ~f~MIN(ABS(B3:B7)~f~.<br>
Ich wäre euch ewig dankbar!<br>
<br>
VIele Grüße,<br>
Paul

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Index-Funktion mit geringstem Abstand
14.04.2020 20:06:55
SF
Hola,
und wir wären über eine Exceldatei dankbar.
Gruß,
steve1da
AW: Index-Funktion mit geringstem Abstand
14.04.2020 20:30:01
Paul
Oh sorry, hier die Datei:
https://www.herber.de/bbs/user/136726.xlsx
Ist mein erster Beitrag und ich hab noch nicht ganz gecheckt, wie alles läuft.
VERGLEICH mit hinten ... ;1)
14.04.2020 21:50:44
WF
Hi,
=INDEX(A1:K8;VERGLEICH(B10;B1:B8;1);VERGLEICH(B11;A2:K2;1))
WF
AW: VERGLEICH mit hinten ... ;1)
14.04.2020 23:14:46
Paul
Vielen Dank für die Antwort!
Leider ist es aber noch nicht ganz das Ergebnis, was ich suche. Wenn ich die Formel so benutze, nimmt er immer den nächstkleineren Wert für die Menge an.
Bsp: Ich gebe 9.000.000 in B11 ein, dann wählt er sich trotzdem B5 (mit 2.500.000) obwohl ja B10 (mit 10.000.000) eigentlich viel näher dran gewesen wäre.
Er soll also immer den am nächsten dran liegenden auswählen, sofern das möglich ist. Nach anderen Beiträgen müsste so ungefähr meine Formel im ursprünglichen Beitrag stimmen.
Vielen Dank!
Anzeige
AW: VERGLEICH mit hinten ... ;1)
14.04.2020 23:40:39
Daniel
Hi
Das kann Excel nicht.
Das Ergebnis des Vergleichs bei Zwischenwerten ist immer der nächst kleinere Wert.
Du hast zwei Möglichkeiten:
a) du änderst die Werteliste, so dass in der Suchspalte (Oder -Zeile) immer der kleinste Wert steht ab dem diese Zeile (Oder Spalte) als Ergebnis verwendet werden soll.
In deinem Fall wäre das immer der Mittelwert aus dem Wert und dem davor liegenden Wert.
Wenn die alte Einteilung weiterhin erhalten bleiben soll, kannst du ja mit einer Hilfsspalte arbeiten, die FU ggf ausblendest und nur für die Formel verwendest.
b) du bildet in der Formel die Differenz zwischen dem gesuchten Wert und dem Wert des Vergleichsergebnisses sowie zwischen dem gesuchten Wert und dem Wert in der Folgezelle des Vergleichergebnisses. Dann vergleichst du beide Differenzen und entscheidest dann ob du das Vergleichsergebnis direkt übernehmen kannst oder den Folgewert nehmen musst (+1).
Da ein Wahr in Berechnungen als 1 gewertet wird, sähe die Formel dann so aus (x ist der Schwert):
Statt:
Vergleich(x;...;1) 

Brauchst du
 Vergleich(x;...;1)+((x-Index(...;Vergleich(x;...;1)))
Also ich würde Variante a) nehmen und die Werte anpassen.
Gruß Daniel
Anzeige
dann wird's komplizierter
14.04.2020 23:41:14
WF
Hi,
folgende Arrayformel:
{=INDEX(C3:K8;MIN(WENN(ABS(B3:B7-B10)=MIN(ABS(B3:B7-B10));ZEILE(X1:X5)));VERGLEICH(B11;C2:K2;1))}
WF
Gleiches Strickmuster, falls auch die nächsten Entfernungen aus B11 gewünscht werden.
AW: dann wird's komplizierter
15.04.2020 09:12:04
Paul
Wahnsinn, funktioniert perfekt, vielen Dank! Da war ich ja wirklich kurz davor, aber hätte es ohne euch trotzdem nie gefunden!
Noch eine kurze Frage zur Formel: ich verstehe die ZEILE-Funktion noch nicht ganz. Wieso gibst du da X1:X5 an (wenn wahr)? Und wie müsste ich das jetzt für die Entfernung machen? Wahrscheinlich dann Spalte und dann irgendwas mit M1:V1 oder so?
VIelen Dank!
Anzeige
ZEILE(X1:X5) sind nur die Zahlen 1;2;3;4;5
15.04.2020 09:49:27
WF
schreib irgendwo
=ZEILE(X1)
runterkopieren
statt X kannst Du jeden anderen Buchstaben nehmen: M1 - K1 - A1 - ...
WF
AW: ZEILE(X1:X5) sind nur die Zahlen 1;2;3;4;5
15.04.2020 11:02:54
Paul
ok verstehe, aber was wäre denn dann jetzt meine Formel, wenn ich das gleiche nochmal für die Entfernung machen möchte? Hier wäre es ja dann die SPALTE-Funktion oder? So funktioniert es irgendwie nicht:
=INDEX(C3:K8;MIN(WENN(ABS(B3:B7-B10)=MIN(ABS(B3:B7-B10));ZEILE(X1:X5)));MIN(WENN(ABS(C2:K2-B11) =MIN(ABS(C2:K2-B11));SPALTE(C1:K1)))) 

fast richtig
15.04.2020 11:26:13
WF
Hi,
ZEILE bzw. SPALTE ist ein Zähler und MUSS mit 1 beginnen.
Du hast SPALTE(C1:K1) - das sind die Zahlen 3;4;5...;11
also SPALTE(A1:I1) - das sind die Zahlen 1;2;3;...;9
ergibt:
{=INDEX(C3:K8;MIN(WENN(ABS(B3:B7-B10)=MIN(ABS(B3:B7-B10));ZEILE(X1:X5)));MIN(WENN(ABS(C2:K2-B11) =MIN(ABS(C2:K2-B11));SPALTE(A1:I1)))) }
WF
Anzeige
fast richtig
15.04.2020 11:36:01
WF
Hi,
ZEILE bzw. SPALTE ist ein Zähler und MUSS mit 1 beginnen.
Du hast SPALTE(C1:K1) - das sind die Zahlen 3;4;5...;11
also SPALTE(A1:I1) - das sind die Zahlen 1;2;3;...;9
ergibt:
{=INDEX(C3:K8;MIN(WENN(ABS(B3:B7-B10)=MIN(ABS(B3:B7-B10));ZEILE(X1:X5)));MIN(WENN(ABS(C2:K2-B11) =MIN(ABS(C2:K2-B11));SPALTE(A1:I1)))) }
WF
AW: fast richtig
15.04.2020 12:55:19
Paul
Ach so, na klar! Tausend Dank!
AW: also mir stellt sich da zunächst die Frage ...
15.04.2020 08:56:24
neopa
Hallo Paul,
... ob Deine Datenmatrix mit den vielen mit "-" ausgewiesenen Werten der Realität entspricht und wenn ja, ob Du bei z.B. einer Entfernung z.B. 1100 und einer Menge von 5 Mio wirklich die da ausgewiesen Kosten= 1 als nächstgelegen Wert nehmen willst. Normalerweise dürfte die Matrix anders gefüllt sein und man rechnet dann oft auch mit einem iterierten Wert.
Gruß Werner
.. , - ...
Anzeige
AW: also mir stellt sich da zunächst die Frage ...
15.04.2020 11:08:06
Paul
Ja das stimmt sicherlich, das Problem ist aber, dass ich aus der Literatur keine bessere Daten bekommen konnte und es deshalb so machen muss. Die "-" werde ich allerdings noch verbessern, das war jetzt nur für die Lösung meines Problems!
Danke :)
AW: das beantworte nur teilweise meine Fragen ...
15.04.2020 11:56:05
neopa
Hallo Paul,
... welches eben u.a. ganz deutlich wird an dem von mir aufgezeigten konkreten Beispiel. Und mE wäre eine Iteration realitätsnäher. Aber das ist halt nur meine Meinung nur Du kannst das entscheiden.
Gruß Werner
.. , - ...
Deine Formel war vollkommen richtig
15.04.2020 00:06:59
WF
Du hast die nur nicht als Arrayformel angeschlossen.
Die hattest Du von uns:
https://www.herber.de/excelformeln/pages/Wert_mit_kleinster_Differenz_zum_Suchwert_finden.html
Eingabe Arrayformel:
Du kopierst Dir die Formel.
Dann gehst Du in die Bearbeitungszeile, löschst die {geschweiften Klammern} am Anfang und Ende und schließt ab mit GLEICHZEITIG: Strg Shift Enter (statt Enter allein). Dadurch werden diese Klammern erzeugt.
WF
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige