Clever-Excel-Forum

Normale Version: Indexausgabefehler bei Mehrfacheinträgen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Morgen,

ich plane gerade ein Dienstplanungssheet zu erstellen. Soweit so gut klappt das auch. Nun habe ich aber ein Fehler festgestellt, an dem ich jetzt nicht weiter komme.

Die Tabelle ist wie folgt aufgebaut. Jeder Standort hat ein Dienstplan als Tabellenblatt. Mitarbeiter können durchaus an mehreren Standorten arbeiten. Um Doppelbesetzungen zu vermeiden, gibt es auch eine Mitarbeiterübersicht, die anzeigt wo ein Mitarbeiter arbeitet und ob er gegebenenfalls mehrfach eingeteilt ist. Dafür habe ich eine Hilfstabelle erstellt, in der ich aus allen Standorten die Dienstpläne untereinander aufliste. 

Das Schema sieht wiefolgt aus: Erste Spalte jeweils die Mitarbeiternamen herauskopiert, erste Zeile das Datum. Ab B2 entsprechend die Schichten usw. 


Code:
=WENN(SUMMENPRODUKT((Hilfstabelle!$A$2:$A$16=$A2)*(Hilfstabelle!$B$1:$AF$1=B$1)*(Hilfstabelle!$B$2:$AF$16<>""))>1;"Fehler";INDEX(Hilfstabelle!$B$2:$AF$16;VERGLEICH($A2;Hilfstabelle!$A$2:$A$16;0);VERGLEICH(B$1;Hilfstabelle!$B$1:$AF$1;0)))


So sieht mein Code aus. Zuverlässig zeigt er Doppelbesetzungen an. Problematisch ist aber, dass wenn Beispielsweise Mitarbeiter 1 in Standort 1 und 2 arbeitet, er nur die Daten vom Standort1 rauszieht.

Was er machen soll ist zum einen Doppelbesetzungen aufzeigen und dann noch die Schichten des Mitarbeiters entsprechend der Einteilung abbilden. 

hoffe es kann mir hier jemand helfen. 

Grüße
CaptainHK
Hola,

neues Forum, neues Glück  :19:

Wieviele Standorte gibt es denn?

Gruß,
steve1da
ja quasi ^^ 

also standorte sollte eigentlich unerheblich sein. der algorithmus sollte so funktionieren:

1. Prüfe MitarbeiterXY am Datum XY und ob er in einer Liste vorkommt. 
2. Mehrmals vorhanden? wenn ja - mehrmals NICHT leer? --> Anzeige Fehler ; wenn nein
3. suche aus liste schnittstelle MitarbeiterXY und Datum XY die NICHT leer ist, ansonsten leer

so müsste es aussehen. Was er macht ist 
1. Prüfe MitarbeiterXY am Datum XY und ob er in einer Liste vorkommt. 
2. Mehrmals vorhanden? wenn ja - mehrmals NICHT leer? --> Anzeige Fehler ; wenn nein
3. suche aus liste schnittstelle MitarbeiterXY und Datum XY 

er nimmt eben aktuell den ersten eintrag der Schnittstelle. 

gruß
CaptainHK


*EDIT*

Geschafft. mit der Formel gehts: 

Code:
=INDEX(Hilfstabelle!B2:B17;VERGLEICH(1;MMULT((Hilfstabelle!A2:A17=Übersicht!A2)*(Hilfstabelle!B2:B17<>"");1);))

Natürlich noch einbinden die Überprüfung ob doppelt besetzt ist, aber soweit passt es  :17:


Code:
=WENNFEHLER(WENN(SUMMENPRODUKT((Hilfstabelle!$A$2:$A$17=$A2)*(Hilfstabelle!$B$1:$AF$1=B$1)*(Hilfstabelle!$B$2:$AF$17<>""))>1;"Fehler";INDEX(Hilfstabelle!B$2:B$17;VERGLEICH(1;MMULT((Hilfstabelle!$A$2:$A$17=Übersicht!$A2)*(Hilfstabelle!B$2:B$17<>"");1);)));"")