Frage von ReneSaince, 60

Wie baue ich die Formel in Excel um?

hallo Zusammen, Ich habe ein kleines Problem zu lösen. Ich habe eine Arbeitsmappe mit 2 Tabellen. Tabelle eins ist eine Bestellübersicht und Tabelle 2 die Matrix. Bei uns hat der Bestandskunde die Möglichkeit zweimal im Monat zu bestellen. In der Matrix (Tabelle 2) erfasse ich alle Bestellungen von allen Kunden, die in dem jeweiligen Monat bestellt haben. Dies ist eine ganz einfache Liste, die wie folgt aufgebaut ist: Tabelle 2

SAP -Nummer | Kunde |Fälligkeitsdatum | geplante Zustellung | Menge

Diese Matrix ist fortlaufend für den jeweiligen Monat und dort kann der Kunde dementsprechend bei 2 Bestellungen, auch zweimal auftauchen, mit zwei verschiedenen Terminen.

In Tabelle eins stehen alle Bestandskunden die wir haben und zieht sich die Daten nun mittels eines SVerweises automatisch aus der Erfassung.

Um diese Übersicht geht es mir nun. Ich habe dort zwei Spalten mit den Überschriften 1. Bestellung und 2. Bestellung zu dem jeweiligen Kunden. Die 1 Spalte zieht sich mittels des Sverweises das Fälligkeitsdatum. Nun möchte ich, das er mir in Spalte 2 das Fälligkeitsdatum der 2. Bestellung in diesem Monat anzeigt, wenn in Spalte 1 bereits ein Datum steht.

Meine bisherige Formel für Spalte 2 sieht wie folgt aus:

=WENN(A1<>"";SVERWEIS(A11;'Statusliste DHL'!$B:$F;2;0);"")

Funktioniert auch, unterscheidet jedoch nicht zwischen den beiden Bestellungen in der Matrix, sodass er mir in beide Spalten das erst beste Datum anzeigt, was er zu diesem Kunden findet. Logischerweise steht dann in beiden Spalten das Datum der 1. Bestellung.

Wie baue ich die Formel um, das er das 2. Datum auch erkennt und einbaut?

Lieben dank im Vorraus

Expertenantwort
von DeeDee07, Community-Experte für Excel, 28

So kannst du eine Tabelle von unten durchsuchen, so dass in deinem Fall das letzte passende Datum ausgegeben wird http://excelformeln.de/formeln.html?welcher=26

die Formel wäre dann

{=WENN(A1<>"";INDEX('Statusliste DHL'!C$1:C$1000;MAX('Statusliste DHL'!C$1:C$1000=A11)*ZEILE($1:$1000));"")}

(ungetestet)

Es ist eine Matrixformel, die mit Strg+Alt+Enter abgeschlossen wird, wordurch die {} erzeugt werden.

Die Bezugsstruktur erscheint mir aber recht eigenartig zu sein. In A1 steht das 1. Datum und in A11 der Kunde? Jedenfalls ist das in deiner Formel so.

Kommentar von ReneSaince ,

=WENN(F11<>"";SVERWEIS(A11;'Statusliste DHL'!$B:$F;2;0);"")

Das war die Ursprungsformel. A1 habe ich nur genommen, weil ich von Spalte 1 und 2 gesprochen habe um es zu vereinfachen.

Antwort
von Jackie251, 34

Das kannst du so lösen:

=INDEX('Statusliste DHL'!$B$4:$F$10;VERGLEICH(Tabelle1!A12;WENN('Statusliste DHL'!$C$4:$C$10<>Tabelle1!B12;'Statusliste DHL'!$B$4:$B$10);0);2)

sinngemäß, die größe der bereiche musst du natürlich selbst anpassen

Das ganze ist dann eine Arrayformel die mittelt Strg+Shift + Enter abgeschlossen werden muss.

Die Idee dahinter, Index und Vergleich sind lediglich eine erweiterte Kombination die Sverweis ersetzen. Dabei ist der Vergleich zusätzlich noch an eine Wenn Bedingung gekoppelt, nämlich das die Bestellung gesucht wird die nicht dem Tag der ersten bestellung entspricht.
Falls beide Bestellungen an einem Tag sein können, funktioniert der Lösungsweg natürlich nicht.
Weiterhin zeigt die Formel ein NV falls es keine 2. Bestellung gibt, das müsste man entsprechend Abfangen zB mittels der Funktion WennNV

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten