Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1064to1068
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Arbeitszeiten sortieren...

Arbeitszeiten sortieren...
27.03.2009 22:42:24
Thomas
Hallo Excelfans.
Ich bin auf der Suche nach einer Lösung (wenn möglich ohne VBA, aber auch eine VBA Lösung wäre akzeptabel) für folgendes Problem:
In einer Reihe von Anfangs und Endzeiten (tatsächlich 16 Zeiten) stehen bis zu 5 (maximal) verschiedene Zeiten drin. Dabei können alle gleich sein, oder eben bis maximal 5 unterschiedliche Zeiten eingegeben sein. Auch können andere Daten enthalten sein, die aber keine Zeit darstellen (z.B. DF).
Nun möchte ich eine Auswertung wie oft welche Zeit vorkommt (so wie in dem Bsp. unten aufgeführt). Die Zeiten sollen sortiert nach der frühesten Anfangszeit sein, bei gleichen Anfangszeiten aber unterschiedlichen Endzeiten soll es wieder zuerst die frühere Endzeit in der Sortierreihenfolge sein.
Ich hoffe das versteht jemand ;o). Aber der Tabellenausschnitt wird es sicher verdeutlichen.
Tabelle1

 ABCDEF
3      
4Beginn21:45    
5Ende06:00    
6Stunden8,25    
7 13:45    
8 22:00    
9 8,25    
10 06:00    
11 14:30    
12 8,5    
13 12:00    
14 21:45    
15 9,75 Auswertung
16 12:00  06:00 
17 21:15  14:00 
18 9,25  2 
19 DF  06:00 
20    14:30 
21 0  1 
22 06:00  12:00 
23 14:00  21:15 
24 8  1 
25 13:45  12:00 
26 22:00  21:45 
27 8,25  2 
28 12:00  13:45 
29 21:45  22:00 
30 9,75  2 
31 06:00  21:45 
32 14:00  06:00 
33 8  1 
34      


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Ist soetwas überhaupt per Formel machbar? Bisher habe ich die Auswertung nur für die Anfangszeiten hinbekommen, die Endzeiten werden nicht berücksichtigt.
Vielleicht hat jemand Lust und Zeit sich mit dem Problem auseinander zu seitzen?
Vielen Dank an alle, die sich schon jetzt die Zeit zu lesen genommen haben und vorallem an alle, die sich jetzt auch noch Gedanken machen.
Gruß Thomas

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Arbeitszeiten sortieren...
27.03.2009 23:34:43
M@x
Hi Thomas,
kann man über die Anordnung der Daten diskutieren
als wenn da statt einer unübersichtlichen senkrechten Wurscht
alle Beginnzeiten in einer Zeile, das Ende darunter und dann die stunden in der 3. Zeile
oder statt Zeilen jeweils extra Spalten
dann sollte das halbwegs einfach machbar sein
Gruss
M@x
AW: Arbeitszeiten sortieren...
28.03.2009 11:27:29
Thomas
Hallo M@x,
da hast du sicher recht. Aber die Struktur der Tabelle ist vorgegeben, kann ich nicht ändern. Auch handelt es sich um ein stark vereinfachtes Beispiel. Die komplette Tabelle umfasst den kompletten Monat, so das 31x die selbe Anordnung darin ist. Bis jetzt läuft die Auswertung so, dass nur der Beginn ausgewertet und sortiert wird, dadurch werden alle gleichen Beginnzeiten zusammengefasst, das Ende wird aber nicht berücksichtigt. Wenns nicht geht muß weiter die Auswertung per Hand vorgenommen werden, dass wollte ich aber verbessern.
Möglich wäre jedoch die senkerechten Zellen in ausgeblendeten wagerechten Zellen noch einmal darzustellen und dort die Auswertung vorzunehmen. Hätte dann einer eine Idee wie man das machen kann?
Gruß Thomas
Anzeige
AW:Beispieldatei ?
28.03.2009 13:20:56
Daniel
Hi
lad doch mal ne Beispieldatei hoch, wo du auch zeigts, wie ausgewertet werden soll.
dann lässt sich einfacher ne Lösung finden.
falls sensible Daten drin sein sollten, kannst du diese ja löschen oder verändern.
Gruß, Daniel
Hier eine Beispieldatei
28.03.2009 14:46:02
Thomas
Hallo,
ich habe eine Beispieldatei, die dem Original bis zu dem Problem entspricht fertig gemacht.
https://www.herber.de/bbs/user/60776.zip
Die Auswertung soll in dem Teil Dienststärke (Gelb markiert) im Blatt Planung stattfinden. Hier sieht man wie es bis jetzt gelöst wurde. Allerdings kommt es vor, das es die selben Anfangszeiten (DB) gibt, aber das Ende (DE) unterschiedlich ist (vergleiche den Tag 21!). Bisher wird aber dort nur der DB berücksichtigt, alle Zeiten mit dem selben Dienstbeginn gezählt und das erste dazu passende DE eingetragen. Schön wäre allerdings wenn man auch das DE berücksichtigen könnte. Im Idealfall sollte der 21. so aussehen:
Planung

 X
7605:45
7714:00
783
790
800
8105:45
8215:00
834
840
850
8608:45
8717:00
882
890
900
91 
92 
93 
94 
95 
96 
97 
98 
99 
100 


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Thomas
Anzeige
AW: Blattschutz
28.03.2009 15:09:54
Daniel
Sorry, ich verstehts nicht, was du willst.
außerdem ist da noch ein Blattschutz drauf, so daß man die Formeln nicht sieht.
Gruß, Daniel
AW: Blattschutz
28.03.2009 15:17:12
Thomas
Ach man, der Blattschutz, sorry. Ist einfach nur ... das Kennwort.
Ich will das die tatsächlich geplante Zeit in der Auswertung erscheint und nicht alle mit der selben Anfangszeit zusammen gefasst werden. Am 21.4 z.B gibt es 3x die Dienstzeit von 5:45 bis 14:00 und 4x die Dienstzeit von 5:45 bis 15:00 Uhr. Bis jetzt wird in der Auswertung aber das zusammengefasst zu 7x 5:45 bis 14:00 Uhr.
Weiß nicht wie ich das noch anders erklären kann...
Gruß Thomas
Anzeige
AW: Blattschutz
28.03.2009 19:09:51
Daniel
Hi
so hier mal ne Makro-Lösung.
ist nicht so ganz trivial und sortiert ist es auch nicht.
damit das Makro funktioniert , musst du noch 2 Namensbereiche einfügen
diese Namensbereiche haben den Vorteil, daß du das Makro nicht ändern musst, wenn du Zeilen oder Spalten einfügst, da sich die Namen automatisch anpassen und das Makro sich auf diese Namen bezieht.
1. Name: "DienstPlan" Zellbereich: =Planung!$C$10:$AH$73
2. Name: "DienstStärke" Zellbereich: =Planung!$A$76:$AH$100

Public Sub DienstStärkeEintragen Dim rngPlan As Range Dim rngStärke As Range Dim arrPlan Dim arrStärke Dim sp As Long Dim MyDictZeiten Dim ZePlan As Long Dim txt As String Dim i As Long Dim ErgZeiten Dim ErgAnzahl Dim Check As Boolean Set rngPlan = Range("DienstPlan") Set rngStärke = Range("DienstStärke") arrPlan = rngPlan Application.EnableEvents = False rngStärke.ClearContents Application.EnableEvents = True arrStärke = rngStärke For sp = 1 To rngPlan.Columns.Count Set MyDictZeiten = CreateObject("Scripting.Dictionary") For ZePlan = 1 To rngPlan.Rows.Count - 1 Step 4 If arrPlan(ZePlan, sp) "" And arrPlan(ZePlan + 1, sp) "" Then If IsNumeric(arrPlan(ZePlan, sp)) Then If IsNumeric(arrPlan(ZePlan + 1, sp)) Then txt = Format(arrPlan(ZePlan, sp), "hh:mm") & " " & Format(arrPlan(ZePlan + 1, _ sp), "hh:mm") MyDictZeiten(txt) = MyDictZeiten(txt) + 1 Check = True End If End If End If Next If Check Then ErgZeiten = MyDictZeiten.keys ErgAnzahl = MyDictZeiten.items If UBound(ErgZeiten) > 4 Then MsgBox "Bitte Bereich ""Dienststärken"" erweitern. Es werden " & UBound(ErgAnzahl) & _ " Dienstzeitvarianten benötigt." Exit Sub Else For i = 0 To UBound(ErgZeiten) arrStärke(i * 5 + 1, sp) = Split(ErgZeiten(i), " ")(0) arrStärke(i * 5 + 2, sp) = Split(ErgZeiten(i), " ")(1) arrStärke(i * 5 + 3, sp) = ErgAnzahl(i) Next Check = False End If End If Next rngStärke = arrStärke End Sub


Gruß, daniel

Anzeige
Teste morgen...
28.03.2009 21:29:21
Thomas
Hallo Daniel,
ich habe heute leider keine chance mehr das zu testen. Werde das sicher morgen ausprobieren und sagen wie gut das geklappt hat.
Vielen Dank aber für deine Mühe.
Gruß Thomas
Hat sehr geholfen!
29.03.2009 12:18:38
Thomas
Hallo Daniel.
Vielen Dank für diese Lösung. Das hat sehr geholfen! Hat auf Anhieb geklappt, mußte allerdings den Namensbereich "DienstStärke" anpassen. Das sortieren wird dann kein Problem mehr werden.
Super, Danke, Gruß Thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige