Clever-Excel-Forum

Normale Version: Zeiterfassungsdaten auswerten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
Hallo,

ich habe ein Monatsjournal mit Zeiterfassungsdaten und will die zusammenfassen zum Auswerten.
Das Thema Datenschutz ist bekannt und wird beachtet.

Es sind für den Januar 2021 insgesamt 16.667 Zeilen in Blöcken pro Person (siehe Beispiel). Die Blöcke sind unterschiedlich groß, je nachdem, ob jemand Urlaub hatte, ein Feiertag war oder Pausenabzug erfolgte.
Jeder Block beginnt mit dem Firmennamen. In Spalte L steht dann die Abteilung und darunter der Name, sowie in denselben Zeilen in BD die Personal- und Ausweisnummer. Die Kommt- und Geht-Zeiten sind im Zeitformat und die Summen-Zeiten (Dezimal-Zeit) in den Spalten AT, AW, AX, AZ und BD mit Punkt dargestellt.

Um es auswerten zu können, benötige ich diese Tages-Daten aller Kollegen dann auf einem extra Blatt.
Ich dachte an 4 zusätzliche Spalten mit Abteilung, Name, Personal- und Ausweisnummer.
Zur Auswertung reichen die Zeilen, die in Spalte A die Wochentage und in B die Tagesnummer haben. Dann will ich noch die Piunkte durch Kommas ersetzen.

Das sinnvollste ist wohl ein Makro. Das ist für mich momentan zu schwierig.
Wer würde mich da unterstützen?

Hier die Beispieldatei mit den Daten einer Person:
[attachment=37084]

Vielen Dank, Gruß Ralf
Hallo Ralf,

das sieht ja schlimm aus. Bin sicher, dass man da nur mit Makros zu Ziel kommen kann. Alternativ müsste man zunächst die viellen leeren Zeilen und Spalten entfernen, was bai mehreren Blättern aber sehr Zeitintensiv würde.  Der Aufbau ist immer gleich?
Hi Klaus-Dieter,

(12.02.2021, 10:03)Klaus-Dieter schrieb: [ -> ]das sieht ja schlimm aus. Bin sicher, dass man da nur mit Makros zu Ziel kommen kann. Alternativ müsste man zunächst die viellen leeren Zeilen und Spalten entfernen, was bai mehreren Blättern aber sehr Zeitintensiv würde.  Der Aufbau ist immer gleich?

ja, das ist immer gleich aufgebaut.
Das ist die Excel-Ausgabe des Zeiterfassungssystems ZEUS. Da sind dann in einigen Spalten auch noch lauter senkrechte Striche als Bildchen zur Spaltentrennung drin.
Ich habe für die Beispiel-Datei die Werte und Formate in ein neues Blatt eingefügt und die Spalten mit einer sinnvollen Breite eingestellt.

Gruß Ralf

PS: Ich brauche das für den Betriebsrat, deswegen gibt es da kein Budget für eine Auftragsprogrammierung und ich muß es selber versuchen.
Hallo Ralf,

werde mich am Wochenende mal damit beschäftigen. Die leeren Spalten und Zeilen können sicher raus?
Hallo Klaus Dieter,

ja, können raus.
Danke schon mal.
Es ist auch alles auf einem Blatt mit dem Namen "Sheet".

Gruß Ralf
Hallo Ralf,

ist die Beispieldatei ein Originalexport aus Zeus oder über Umwege zu einer Exceldatei gemacht worden?
Laut Hersteller lassen sich die Listen auch konfigurieren. Denn ich glaube nicht das ein so namhafter Anbieter Dateien in so einem Zustand standartmäßig rausgibt. 
Wenn du die Möglichkeit hast auf das System zuzugreifen, solltest du das Übel bei der Wurzel packen.


gruß

rb
Hallo Ralf,

danke für den Tipp.

Ich werde mal im Sekretariat nachfragen.
Ic fürchte aber, daß das ein Original-Export ist.

[später]
Ok, das ist ein Original-Export.

Ich habe jetzt die Mail-Adresse unseres Beraters.
Nun werde ich dem mal auf die Nerven gehen. Wink

Gruß Ralf

PS:
Unabhängig davon habe ich mit diesem Makro-chen die Leerzeilen entfernt:
Sub Leere_Zeilen_löschen()
   With Worksheets("Test")
   loLetzteA = .Cells(.Rows.Count, "A").End(xlUp).Offset(1).Row
   For i = loLetzteA To 1 Step -1
      If range("A" & i).Value = "" Then
         Rows(i).Delete
      End If
   Next i
  End With
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0

Ein erster Ansatz das Format etwas zu bereinigen:

Ein weiteres Sheet einfügen:

Code:
Sub Datum()
Dim Monat As Date

For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    If IsDate(Cells(i, 1)) Then Monat = Cells(i, 1)
    If Not IsEmpty(Cells(i, 2)) Then
        Rows(i).EntireRow.Copy Sheets(2).Cells(i, 1)
        Sheets(2).Cells(i, 1) = VBA.DateSerial(Year(Monat), Month(Monat), Val(Cells(i, 2)))
    End If
Next i
End Sub

Damit wird das Datum in ein Excel-Datum gewandelt. Es sollte für alle Jahre und Monate passen.
(12.02.2021, 11:37)Rabe schrieb: [ -> ]Unabhängig davon habe ich mit diesem Makro-chen die Leerzeilen entfernt

wie kann ich nun die Zeilennummern jeweils von einer Zeile mit "Musterfirma" bis zur nächsten mit "Musterfirma" feststellen, um dann die 4 zusätzlichen Spalten rechts mit Abteilung, Name, Personal- und Ausweisnummer zu füllen?
Einer der ersten Schritte müßte es m.E. sein, die Blöcke zu erkennen. Das "Musterfirma" ein Dummy ist, wird eine eindeutige Markierung bnötigt, z.B. immer 2 Zellen ober halb von "Druckdatum".

Von dem Konzept einer relationalen Datenbank sollte in der großen Tabelle nur eine ID, ein einer zweiten Tabelle, Firma, Name, Personalnummer, Soll-Arbeitszeit usw gespeichert werden.

Aber dieses "schreckliche" Format nutzbar zu machen, wird Dich noch einige Zeit beschäftigen.
Seiten: 1 2 3 4