Fehlende Einträge in einer Spalte anzeigen
#1
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 ;)


Angehängte Dateien
.xlsx   Excel Beispiel für Forum.xlsx (Größe: 9,66 KB / Downloads: 13)
Antworten Top
#2
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

d`r Bastler von den VBAsteleien.de
Win 10 & 11, Office 2019 & 2021 & macOS X.15, XL 2019
Antworten Top
#3
B15[:I15]: =TEXTVERKETTEN("-";;WENN(ISTNV(VERGLEICH($B19:$B24;B3:B11;));$B19:$B24;""))
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Antworten Top
#4
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ß


.xlsb   Hurzels Schichtplan.xlsb (Größe: 20,43 KB / Downloads: 4)

d`r Bastler von den VBAsteleien.de
Win 10 & 11, Office 2019 & 2021 & macOS X.15, XL 2019
Antworten Top
#5
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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#6
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

d`r Bastler von den VBAsteleien.de
Win 10 & 11, Office 2019 & 2021 & macOS X.15, XL 2019
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste