Clever-Excel-Forum

Normale Version: Fehlende Einträge in einer Spalte anzeigen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen!
Ich hoffe, ihr könnt mir weiterhelfen. Es geht im eine Excel-Tabelle für eine Dienstplanerstellung. Es müssen pro Tag bestimmte Schichten geplant werden, die alle eine einzelne Bezeichnung haben. Ich möchte in einer Zelle gern die Bezeichnungen angezeigt bekommen, die an dem Tag noch nicht verplant sind.

Die Bezeichnungen sind folgende, die jeden Tag verplant werden müssen:
F8 F6 Z6 RST D3 D3fr 

Ich habe es über eine Formel geschafft immer nur jeweils einen Wert anzeigen zulassen der fehlt. Wenn ich diesen dann eintrage, wird mir der nächst fehlende Wert angezeigt. Hier möchte ich gern die fehlenden Werte in einer Zelle angeigt bekommen.

Die Formel ist folgende:

=WENNFEHLER(INDEX({"F8";"F6";"Z6";"RST";"D3";"D3fr"};VERGLEICH(0;INDEX(ZÄHLENWENN(I5:I13;{"F8";"F6";"Z6";"RST";"D3";"D3fr"});0);0));"ok")

Im Anhang habe ich Euch eine Beispieltabelle eingefügt in der Ihr meine Herausforderung sehen könnt. Herzlichen Dank für ein paar Tipps.  Achso, ich würde es gern ohne VBA lösen wollen :)

Danke ;)
Hallo Hurzel,

Zitat: Achso, ich würde es gern ohne VBA lösen wollen :)
Schade, das wäre vermutlich eine nette Kleinigkeit für eine Schleifenabfrage. Ich vermute fast, dass eine Matrixformel knapp genauso viele Zeichen benötigt wie VBA, dabei aber erheblich unübersichtlicher ist.


Aber - nicht traurig sein: Es gibt hier etliche richtig gute Formel-EXCELperten.

Grüße
B15[:I15]: =TEXTVERKETTEN("-";;WENN(ISTNV(VERGLEICH($B19:$B24;B3:B11;));$B19:$B24;""))
Moin Hurzel,

sorry, ich konnte es leider nicht lassen ... doch mit VBA  19

Du findest im Anhang eine leere Tabelle. Drück mal strg+n und schon ändert sich das schlagartig. (Eventuelle Sicherheitsabfragen einfach bestätigen, ich will Dir nichts Böses.) Du siehst unterhalb der Tage jeweils alle sechs Schichten. Trägst Du bei einem Mitarbeiter eine Schicht ein, wird sie aus der Liste der offenen Schichten gelöscht. Sind alle Schichten gefüllt, ist die Liste der offenen einfach leer. Ich finde das übersichtlicher, als alle fehlenden Schichten in eine Zelle zu zwängen.

Meine Fantasie-Mitarbeiter willst Du sicher nicht übernehmen. Also -trau Dich- öffne mit Alt+F11 den VB-Editor, dann das Modul modBastler  (Eventuell musst Du dazu das kleine + vor dem Ordner Module im VBA-Explorer links anklickenund ändere die eine Zeile 
Code:
aColl = Array("Müller", "Meier", "Schulze", "Hinz", "Und", "Kunz", "Normalo", "Faulpelz", "Streber")

nach Deinen Wünschen. Mit strg+s speicherst Du Deine Änderung.

Danach bekommst Du mit strg+n jedes Mal einen neuen leeren Schichtplan mit Deinen tatsächlichen Kollegen.

Viel Spaß

[attachment=44150]
Hallöchen,

Mitarbeiternamen fest zu vercoden ist nicht gerade ... Variable und vom Anwender / Verantwortlichen / Administrator zu ändernde Daten sollten keine Codeänderung erforderlich machen, das kann man anders lösen.
Wie recht Du doch hast, André,

mit dem Hinweis an Hurzel wollte ich aber 1.) bezwecken, dass er seine Mitarbeiter auch bei regelmäßiger Erneuerung der Tabelle wieder zur Verfügung hat (was man natürlich, entweder einfach leerlassen, also händisch eintragen, oder über eine verdeckte Hilfstabelle machen könnte) und 2.) -eigentlich wichtiger- er sich mal ein Herz fasst und sich in die Welt des VBA traut.

Grüße