Microsoft Excel

Herbers Excel/VBA-Archiv

Lagerliste

Betrifft: Lagerliste von: B aus R
Geschrieben am: 11.02.2020 19:59:32

Hallo,
ich bin neu hier und bitte um Nachsicht falls ich mich nicht korrekt verhalten sollte.
Ich habe eine Lagerliste mit über 2000 Artikel, und Suche nach Artikelnummer den Artikel mit dem nächsten Ablaufdatum und dessen Platz in welchem Regal.
Hat mir hier jemand eine passende Formel.

https://www.herber.de/bbs/user/135133.xlsx

Ablaufdatum Artikelnummer Lagerplatz Artikelnummer Lagerplatz
Suchfeld: 101 ????
30.09.2020 100 Regal 1 Platz 1
24.04.2020 100 Regal 1 Platz 2
12.05.2020 101 Regal 1 Platz 3
10.05.2020 10 Regal 1 Platz 4
18.05.2020 106 Regal 1 Platz 5
07.04.2020 106 Regal 1 Platz 6
07.03.2021 106 Regal 1 Platz 7
04.06.2020 101 Regal 1 Platz 8
05.02.2022 101 Regal 1 Platz 9
29.11.2020 101 Regal 1 Platz 10
14.07.2020 101 Regal 1 Platz 11
14.05.2021 101 Regal 1 Platz 12

15.06.2020 101 Regal 2 Platz 1
11.06.2020 101 Regal 2 Platz 2
11.04.2020 106 Regal 2 Platz 3
30.05.2020 100 Regal 2 Platz 4
05.08.2020 25 Regal 2 Platz 5
08.06.2020 101 Regal 2 Platz 6
05.06.2020 26 Regal 2 Platz 7
10.04.2020 106 Regal 2 Platz 8
Regal 2 Platz 9
usw.

Betrifft: Regalsuche
von: WF
Geschrieben am: 11.02.2020 20:12:23

Hi,

folgende Arrayformel:
{=INDEX(C:C;VERGLEICH(MIN(WENN(B1:B999=E2;A1:A999));A1:A999;0))}

WF


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.

Betrifft: AW: Regalsuche
von: B aus R
Geschrieben am: 12.02.2020 08:55:30

Hallo WF,

vielen Dank, die Formel hat gepasst.
Super Danke.

Grüße von B aus R

Auch an dich Werner, nochmal Danke

Betrifft: optimiert
von: WF
Geschrieben am: 12.02.2020 09:27:09

Hi,

es kann ja sein, dass das gefundene Datum für Artikelnummer X schon vorher für eine andere Nr. vorkommt.

Zur Sicherheit also:
{=INDEX(C:C;VERGLEICH(MIN(WENN(B1:B999=E2;A1:A999))&E2;A1:A999&B1:B999;0))}

WF

Betrifft: AW: z.B. mit INDEX() udn AGGREGAT() ...
von: neopa C
Geschrieben am: 11.02.2020 20:14:16

Hallo B,

... so:
=INDEX(C:C;AGGREGAT(15;6;ZEILE(C3:C2000)/(B3:B2000=E2)*(A3:A2000>=HEUTE());1))

Gruß Werner
.. , - ...

Betrifft: AW: z.B. mit INDEX() udn AGGREGAT() ...
von: B aus R
Geschrieben am: 12.02.2020 08:34:48

Hallo Werner,



Danke für die Formel, aber leider funktioniert die so nicht .

Die nimmt bei mehreren gleichen Artikelnummern die oberste Zeile aber nicht dass nächste Ablaufdatum.

Dann habe ich noch Datum gefunden, die vor heute liegen also in 2019.

Und bei Artikel 100 zeigt sie 0 an.

https://www.herber.de/bbs/user/135141.xlsx

Betrifft: AW: z.B. mit INDEX() udn AGGREGAT() ...
von: B aus R
Geschrieben am: 12.02.2020 08:34:48

Hallo Werner,



Danke für die Formel, aber leider funktioniert die so nicht .

Die nimmt bei mehreren gleichen Artikelnummern die oberste Zeile aber nicht dass nächste Ablaufdatum.

Dann habe ich noch Datum gefunden, die vor heute liegen also in 2019.

Und bei Artikel 100 zeigt sie 0 an.

https://www.herber.de/bbs/user/135141.xlsx

Betrifft: AW: da lag nicht nur ein Schreibfehler vor ...
von: neopa C
Geschrieben am: 12.02.2020 17:00:16

Hallo B,

... die Formel konnte so nicht das angestrebte Ergebnis bringen. Sorry.

Wieso ich in der Formel eine Multiplikation eingebaut habe, wo ich doch aus Prinzip in diesen Formel (fast) immer dividiere. Ist mir heute ein Rätsel.

In der Formel sollte nämlich anstelle dem * ein / stehen, somit also:

=INDEX(C:C;AGGREGAT(15;6;ZEILE(C3:C2000)/(B3:B2000=E2)/(A3:A2000>=HEUTE());1))

Doch dieses Formel kann aus meiner heutiger Sicht auch nicht immer das von Dir angestrebte Ergebnis liefern, weil es nicht das wirklich maßgebliche Datum berücksichtigt.

Richtig sollte z.B. folgende Formel sein:

=VERWEIS(9;1/(A1:A2222=AGGREGAT(15;6;A1:A2222/(B1:B2222=E2)/
(A1:A2222>=HEUTE());1))/(B1:B2222=E2);C:C)


Hierin habe ich den zusätzlichen Vergleich der Datumswerte mit HEUTE() bewusst eingebaut. Denn Du hattest ja geschrieben: "Suche nach Artikelnummer den Artikel mit dem nächsten Ablaufdatum ..." Und dieses kann für mich nur ein Datum nach dem jeweiligen HEUTE() sein.

Ohne diesen zusätzlichen Vergleich mit HEUTE(), also:

=VERWEIS(9;1/(A1:A2222=AGGREGAT(15;6;A1:A2222/(B1:B2222=E2);1))/(B1:B2222=E2);C:C)

wird nur der Lagerplatz des ältesten Datum (also was normalerweise schon ausgesondert sein sollte) gefunden. Aber vielleicht suchst Du ja auch gerade den. Das kannst nur Du wissen.

Gruß Werner
.. , - ...