Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Mit Dictionary filtern und Anzahl Tage zählen
zurück: Wert aus Textbox im Tabellenblatt suchen weiter: DLL registriert? Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
schnarrenberger
Im Profil kannst Du frei den Rang ändern


Verfasst am:
31. Jan 2013, 14:04
Rufname:

Mit Dictionary filtern und Anzahl Tage zählen - Mit Dictionary filtern und Anzahl Tage zählen

Nach oben
       Version: Office 2007

Hallo,

ich hab eine lange Liste (ca. 20000 Datensätze). Hier möchte ich bestimmte Einträge wie folgt ändern/löschen:

Ich möchte wissen, wie viel Tage jede Pesron am Stück (also ohne Unterbrechung) anwesend ist. Die Personen sind teilweise mehrmals in der Liste aufgeführt. Wenn jemand z.B. 3 x in der Liste vorkommt und sich aus den Zeiten( An und Abreise) ergibt, das er am Stück aber anwesend ist, dann soll der erste Eintrag erhalten bleiben, das ursprüngliche Abreisedatum des ersten Eintrags durch das Datum des letzten Eintrags (Abfahrt) ersetzt werden und die Anzahl des Gesamttage in der entsprechenden Spalte gesetzt werden. Die anderen Datensätze dieser Person sollen gelöscht werden.

Wenn die Person aber mehrmals auftaucht, mit zeitlichen Pausen dazwischen, soll der folgende Aufenthalt erhalten bleiben und als eigenständiger Aufenthalt gesehen werden.

In der Beispieldatei auf Tabelle1 hab ich mal versucht das Problem darzustellen. Auf dem anderen Blatt, wie das Ergebnis aussehen soll. Ich hab schon herumexperiment. Wenn die Person nur 2 mal auftaucht und am Stück bleibt geht's, aber bei mehrenen Einträgen hab ich jetzt grad ein Problem...

Für jede Hilfe sehr dankbar.

Viele Grüße
Schnarrenberger



Anzahl Tage am Stück.xls
 Beschreibung:

Download
 Dateiname:  Anzahl Tage am Stück.xls
 Dateigröße:  50.5 KB
 Heruntergeladen:  16 mal

Phelan XLPH
Fortgeschritten


Verfasst am:
31. Jan 2013, 17:35
Rufname: Phelan


AW: Mit Dictionary filtern und Anzahl Tage zählen - AW: Mit Dictionary filtern und Anzahl Tage zählen

Nach oben
       Version: Office 2007

Code:
Sub xyz()
   Dim sID As String
   Dim avSortCol As Variant
   Dim rngF As Range
   Dim i As Long
   
   avSortCol = Array(7, 5, 12, 5, 4)
   
   Application.ScreenUpdating = False
   
   With Range("A1").CurrentRegion
      With .Columns(.Columns.Count).Offset(, 1)
         .Formula = "=ROW()"
         .Value = .Value
      End With
   End With
   
   With Range("A1").CurrentRegion
   
      For i = LBound(avSortCol) To UBound(avSortCol)
         .Sort .Cells(avSortCol(i)), xlAscending, Header:=xlYes
      Next
   
      sID = Cells(2, 4) & Cells(2, 5) & Cells(2, 12)
      For i = 2 To .Rows.Count
         If sID = Cells(i + 1, 4) & Cells(i + 1, 5) & Cells(i + 1, 12) Then
            If Cells(i, 7) = Cells(i + 1, 6) Then
               If Cells(i, 6) = Empty Then
                  With Cells(i, 6).End(xlUp)
                     .Offset(, 1) = Cells(i + 1, 7)
                  End With
               Else
                  Cells(i, 7) = Cells(i + 1, 7)
               End If
               Cells(i + 1, 6) = Empty
            End If
         Else
            sID = Cells(i + 1, 4) & Cells(i + 1, 5) & Cells(i + 1, 12)
         End If
      Next
     
      On Error Resume Next
      .Columns(6).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
      On Error GoTo 0
     
      .Sort .Columns(.Columns.Count).Cells(1), xlAscending, Header:=True
      .Columns(.Columns.Count).Clear
   End With
   
   With Range("A1").CurrentRegion
      With Intersect(.Cells, .Offset(1)).Columns(14)
         .Formula = "=G2-F2+1"
         .Value = .Value
         .NumberFormat = "0"" Tage"""
         .HorizontalAlignment = xlGeneral
      End With
   End With
   
End Sub
schnarrenberger
Im Profil kannst Du frei den Rang ändern


Verfasst am:
31. Jan 2013, 18:36
Rufname:

AW: Mit Dictionary filtern und Anzahl Tage zählen - AW: Mit Dictionary filtern und Anzahl Tage zählen

Nach oben
       Version: Office 2007

Hallo Phelan,

erster Test sieht schon mal super aus.

Mal sehen, ob ich das nachvollziehen kann:
avSortCol = Array(7, 5, 12, 5, 4) 'Reihenfolge der Spalte zum Sortieren, richtig?

Erstmal die zeilennummer in die erste freie Spalte eingetragen
Dann nach Reihenfolge oben (array) Spalten sortieren - Das blick' auch auch nicht ganz durch. Kleine Erklärung?
Dann Gleiche gesucht und Datum miteinander verglichen, letztes Datum in erste Fundstelle, die anderen leeren (Abfahrt). Hier muß ich noch etwas nachstellen, um es ganz genau zu kapieren.
Dann jedenfalls Zeilen mit leerer Zelle (Abfahrt) löschen
Dann nach Zeilennummer aufsteigend sortieren (s.o. erste freie Spalte), danach Spalteninhalt mit Zeilennummern wieder löschen.
Zum Schluß Berechnung Differenz Tage aus An und Abfahrt mit Formel, die aber auch gleich gelöscht wird, sobald das Ergebnis da ist. Das Ganze noch formatieren und fertig.

Ich hoffe, ich habs in etwa?

Auf jeden Fall vielen, vielen Dank.
Gruß
Schnarrenberger
Phelan XLPH
Fortgeschritten


Verfasst am:
31. Jan 2013, 21:00
Rufname: Phelan


AW: Mit Dictionary filtern und Anzahl Tage zählen - AW: Mit Dictionary filtern und Anzahl Tage zählen

Nach oben
       Version: Office 2007

Hallo,

du kannst den Code an deinem hochgeladenen Beispiel testen.

Geh den Code Schritt für Schritt mit F8-Taste durch und schau was sich regt.

Dann verstehst du es auch. Wink
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Excel Formeln: Max. Anzahl von benutzten Spalten und Zeilen ermitteln 2 Fire 2461 01. Feb 2005, 11:14
Fire Max. Anzahl von benutzten Spalten und Zeilen ermitteln
Keine neuen Beiträge Excel Formeln: Argumente in einer Zelle zählen 2 fridgenep 1538 31. Jan 2005, 14:52
fridgenep Argumente in einer Zelle zählen
Keine neuen Beiträge Excel Formeln: Namen in einer Liste zählen 3 Enjoy82 1646 26. Jan 2005, 12:57
Gast Namen in einer Liste zählen
Keine neuen Beiträge Excel Formeln: Anzahl bestimmter Wochentage pro Monat berechnen 2 Job 3090 12. Jan 2005, 15:57
Job Anzahl bestimmter Wochentage pro Monat berechnen
Keine neuen Beiträge Excel Formeln: Zeiträume (Tage) berechnen 2 AndyW 1930 30. Dez 2004, 09:56
AndyW Zeiträume (Tage) berechnen
Keine neuen Beiträge Excel Formeln: Monatsplan Tage sperren problem excel 2003 3 thomy 1217 16. Dez 2004, 11:51
thomy Monatsplan Tage sperren problem excel 2003
Keine neuen Beiträge Excel Formeln: Zelleninhalte nach gewissen Bedingungen zählen 2 danaldo 1882 13. Dez 2004, 12:32
danaldo Zelleninhalte nach gewissen Bedingungen zählen
Keine neuen Beiträge Excel Formeln: Wochenenden des aktuellen monats zählen 4 Ryu-Fei 2454 11. Dez 2004, 13:37
Ryu-Fei Wochenenden des aktuellen monats zählen
Keine neuen Beiträge Excel Formeln: Zählen von Argumenten in einem Bereich 2 beaver 1634 09. Dez 2004, 23:42
Arnim Zählen von Argumenten in einem Bereich
Keine neuen Beiträge Excel Formeln: Zählen, so dass doppelte Werte nur einmal gezählt werden 2 Volkmann 2258 30. Nov 2004, 17:18
Volkmann Zählen, so dass doppelte Werte nur einmal gezählt werden
Keine neuen Beiträge Excel Formeln: DATUM -> Tage zählen ? 3 anna-bolika 4451 11. Okt 2004, 16:34
lou38 DATUM -> Tage zählen ?
Keine neuen Beiträge Excel Formeln: Letzten drei Ziffern aus einer Zelle filtern?? 7 Ben 3398 23. Sep 2004, 13:39
Gast Letzten drei Ziffern aus einer Zelle filtern??
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Word VBA