Daten neu anordnen

Schichtplan in getrennter Tabelle neu anordnen

Excel, alle Ver­sio­nen

Die Auf­gabe: In ein­er dreis­palti­gen Tabelle sind die Namen der Mitar­beit­er ver­merkt. Das Ziel soll es sein, in ein­er neuen Tabelle alle Namen direkt untere­inan­der, ohne Leerzeilen bzw. Leerzellen dazwis­chen nach Früh‑, Spät- und Nachtschicht geord­net aufzulis­ten. Hin­ter jedem Namen soll dann in der Ziel-Tabelle noch in Klam­mern ein Kürzel für die Schicht­beze­ich­nung einge­fügt wer­den. Hier die Ursprungs-Tabelle mit den Namen:

Beispiel eines Schichtplans

Beispiel eines Schicht­plans

Prinzip­iell führen viele Wege nach Rom, sprich zum Ziel. Zwei davon stelle ich Ihnen zwei in dieser ver­Link­ten Datei vor. Bei­de Möglichkeit­en enthal­ten Makros/VBA. Zuvor ein kurz­er Aufriss, wie es auch ohne Pro­gram­mierung gehen würde:

  • Spalte A Zeile 1 bis zum Ende in ein neues Tabel­len­blatt Spalte A kopieren.
  • Spalte B Zeile 1 bis zum Ende in dieses neue Tabel­len­blatt Spalte D kopieren.
  • Spalte C Zeile 1 bis zum Ende in dieses neue Tabel­len­blatt Spalte G kopieren.
  • (Ab hier geschieht alles in dem neuen Tabel­len­blatt)
  • Markieren Sie die kom­plette Spalte A.
  • Nutzen Sie den Aut­oFil­ter, um alle Zellen außer den leeren Zellen anzuzeigen.
  • In die erste Namen­szelle (hier: B2) nun diese Formel: =A2 & "(F)"
  • Die Formel bis zum let­zten Namen aus Spalte A herunter kopieren.
  • Den Aut­oFil­ter wieder auss­chal­ten.
  • Bei der Früh- und Spätschicht gle­icher­maßen vorge­hen.
  • Die Spal­ten A; D; G nacheinan­der und einzeln ab Zeile 2 bis zum let­zten Ein­trag kopieren und immer untere­inan­der in Spalte J als Wert ein­fü­gen.
  • Anschließend die kom­plette Spalte J markieren und per Aut­oFil­ter alles außer Leerzellen anzeigen lassen.
  • Die hier angezeigten Namen kopieren und dann den Aut­oFil­ter wieder aufheben.
  • Auf K1 Klick­en und den Inhalt der Zwis­chen­ablage ein­fü­gen (beispiel­sweise per StrgV).
  • Alle Spal­ten bis Spalte K kön­nen nun gelöscht wer­den. Alter­na­tiv haben Sie die let­zte Ein­füge-Aktion gle­ich in einem neuen Blatt durchge­führt, dann ent­fällt natür­lich das Löschen.
  • Jet­zt liegen die Namen so vor, wie es sein soll.

▲ nach oben …

Mir ist das ein­fach zu viel Umstand. Und wenn das öfter geschehen soll, dann artet das in richtige Arbeit aus.  😈 Darum ist ein Makro vielfach die bessere Lösung. In dieser Datei find­en Sie die bei­den Makro-Proze­duren. Einige Hin­weise zu den ver­schiede­nen Ver­sio­nen: Die erste Sub ist etwas trans­par­enter gestal­tet und für Ein­steiger gewiss etwas über­sichtlich­er und leichter kor­rigier­bar. Zugegeben, es würde noch ein­fach­er, noch (schein­bar) klar­er gehen. Da wür­den dann die drei Spal­ten nacheinan­der abgear­beit­et und jew­eils für Quelle und Ziel die let­zte belegte bzw. erste freie Zeile bes­timmt. Davon gibt es so viele Beispiele im Netz, das möchte ich derzeit nicht auch noch „antun”. Soll­ten Sie jedoch ver­stärk­tes Inter­esse daran haben, ein­fach als Kom­men­tar in den Blog und/oder eine Mail schreiben.

Die Proze­dur Zusammenfassung2() ist ins­beson­dere bei größeren Daten­men­gen erhe­blich schneller. Das ist durch das mehrdi­men­sion­ale Array bed­ingt. Außer­dem ist in dem Tabel­len­blatt (Tabelle3) Spalte A mit ein­er bed­ingten For­matierung verse­hen, damit die Schicht­en noch präg­nan­ter erkennbar sind:

Ergebnis mit bedingter Formatierung

Ergeb­nis mit bed­ingter For­matierung

Das war’s!

Hin­weis: Wenn Sie in Sachen VBA bzw. Makros uner­fahren oder noch nicht so ganz „sat­telfest” sind, dann find­en Sie an dieser Stelle in meinem Blog eine Anleitung, die Ihnen bei den ersten Schrit­ten hil­fre­ich zur Seite ste­ht.

[NachOben­Let­zte Verweis=„DL: Schicht­plan neu ord­nen”]
Dieser Beitrag wurde unter Downloads, Mit VBA/Makro, Tabelle und Zelle abgelegt und mit , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.