Registriert seit: 16.02.2021
Version(en): 2016
16.02.2021, 20:24
Hallo Ihr!
Ich hoffe dieses Thema gabs noch nicht, ich habe es jedenfalls nicht gefunden. Ich stehe vor folgendem Problem:
Ich möchte von einem Artikel eine Menge eingeben. Anschließend soll er mir die Menge aus einer Liste geben, die am nächsten an der Eingabemenge dran ist und dem Artikel zugehörig ist. Anbei eine Beispielversion:
Mit folgender Formel für die Referenzmenge bekomme ich den Wert aus der Mengenliste, der am nächsten an meiner Eingabe dran ist, jedoch bekomme ich die Bedingung "Artikel" nicht mit eingebunden.
Ich hoffe ihr könnt mir helfen
Code:
=MIN(WENN(ABS($H$3:$H$11-C3)=MIN(ABS($H$3:$H$11-C3));$H$3:$H$11))
Registriert seit: 21.06.2016
Version(en): 2021
Hallo M...,
Man könnte die Differenzen sehr stark vergrössern, wenn der Artikel nicht übereinstimmt.
Durch die Division wird verhindert, dass ein (falscher) Wert angezeigt wird, wenn der Artikel nicht vorhanden ist.
=MIN(WENN(ABS($H$3:$H$11+9^9*($G$3:$G$11<>B3)-C3)=MIN(ABS($H$3:$H$11+9^9*($G$3:$G$11<>B3)-C3));$H$3:$H$11/($G$3:$G$11=B3)))
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
Folgende(r) 1 Nutzer sagt Danke an Ego für diesen Beitrag:1 Nutzer sagt Danke an Ego für diesen Beitrag 28
• MalteLev
Registriert seit: 16.03.2019
Version(en): 2010/2013
Hallo,
es könnte ja vorkommen, dass die kleinste Differenz auf mehrfache Positionen der Liste zutrifft.
(z.B. bei Artikel 1 mit gewünschter Menge 120. Dann haben 150 und 90 jeweils die Differenz von 30)
=VERWEIS(9;1/(ABS(($H$3:$H$11-$C3)/($G$3:$G$11=$B3))=AGGREGAT(15;6;ABS(($H$3:$H$11-$C3)/($G$3:$G$11=$B3));1));$H$3:$H$11)
liefert den letzten Wert aus Liste, mit der kleinsten Differenz
=INDEX($H:$H;AGGREGAT(15;6;ZEILE($H$3:$H$11)/(ABS(($H$3:$H$11-$C3)/($G$3:$G$11=$B3))=AGGREGAT(15;6;ABS(($H$3:$H$11-$C3)/($G$3:$G$11=$B3));1));1))
liefert den ersten Wert aus Liste, mit der kleinsten Differenz
Viele Grüße
Georg
Registriert seit: 21.06.2016
Version(en): 2021
Hallo Georg,
was hilft mir der erste oder letzte Wert, wenn beide gleich sein können. Mit derMIN-Funktion habe ich entschieden, dass ich bei gleichen Abständen den kleineren Wert nehme. Wenn ich den größeren Wert haben will, nehme ich die MAX-Funktion.
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
Registriert seit: 16.02.2021
Version(en): 2016
17.02.2021, 20:10
(Dieser Beitrag wurde zuletzt bearbeitet: 17.02.2021, 20:11 von MalteLev.)
´Vielen Dank für eure Antworten.
@Ego Super Lösung vielen Dank!!