Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1440to1444
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

Macro zur Filterung nach Abhängigkeiten

Macro zur Filterung nach Abhängigkeiten
17.08.2015 09:11:58
Max
Hallo zusammen
ich habe ein extrem kniffliges Excel Problem und in der Vergangenheit fand ich hier immer Rat. Leider komme ich auf keinen grünen Zweig was mein jetziges Problem angeht.
Gehen wir es an.
Ich habe ein Excel Dokument mit 3 Spalten: A - Uhrzeiten; B - unwichtige Werte; C - extrem wichtige Angaben, die x-fach wiederholt vorkommen
Damit gleich ein guter Eindruck entsteht, so sehen Spalte A und C aus:
00:07 Maschine1
00:08 Maschine1
00:50 Maschine2
01:02 Maschine1
05:14 Maschine3
05:15 Maschine3
06:09 Maschine4
06:11 Maschine4
06:23 Maschine5
06:35 Maschine6
06:38 Maschine6
06:40 Maschine1
07:15 Maschine7
07:16 Maschine7
07:20 Maschine1
07:21 Maschine5
07:22 Maschine5
07:24 Maschine5
07:26 Maschine5
07:26 Maschine5
07:27 Maschine5
07:27 Maschine5
Das Problem ist nun dieses, ich benötige von jeder Maschine nur eine Meldung innerhalb von 5 Minuten (das ist in der Regel, die initial Meldung, alles andere ist eine fortlaufende Session).
Nach den Zahlen oben hier noch einmal, aber nur die FETT geschriebenen Werte dürfen bleiben, alles andere soll gelöscht werden.
00:07 Maschine1
00:08 Maschine1
00:50 Maschine2
01:02 Maschine1
05:14 Maschine3
05:15 Maschine3
06:09 Maschine4
06:11 Maschine4
06:23 Maschine5
06:35 Maschine6
06:38 Maschine6
06:40 Maschine1
07:15 Maschine7
07:16 Maschine7
07:20 Maschine1
07:21 Maschine5
07:22 Maschine5
07:24 Maschine5
07:26 Maschine5
07:26 Maschine5
07:27 Maschine5
07:27 Maschine5
An dem Ausdruck "Maschine NR" nicht all zu sehr orientieren, dass ist eine extrem verkürzte Form vom original Ausdruck. Dieser ist bis zu 150 Zeichen lang, aber immer identisch für jede einzelne Maschine. Der Harken an der Sache ist, das die Maschinen nicht immer gleich sind. Es können jeder Zeit neue hinzukommen, die noch nie zuvor erfasst wurden, somit müsste das Macro den Ausdruck auf Ähnlichkeit untersuchen und daran bewerten und nicht anhand von einer vorhanden Liste mit allen möglichen Ausdrücken.
Mein Macro bis jetzt sieht so aus:

Sub loeschen()
Dim r As Integer
For r = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If Range("A" & r).Value - Range("A" & r - 1).Value  Range("C" & r).Value Then Rows(r).Delete
Next r
End Sub

Eigentlich ist es nun so:
WENN der Unterschied zwischen A1 und A2 Natürlich funktioniert es nicht, sobald die Verkettung "And" beginnt. Ohne das And läuft es, aber es löscht alle Zeiten die Vielen Dank für die Hilfe!
Max

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Macro zur Filterung nach Abhängigkeiten
17.08.2015 09:53:47
Nepumuk
Hallo,
so?
Option Explicit

Public Sub Loeschen()
    Dim lngRow As Long
    Dim strMachine As String
    Dim dtmTime As Date
    
    dtmTime = Cells(2, 1).Value
    strMachine = Cells(2, 3).Value
    
    lngRow = 3
    
    Do Until lngRow > Cells(Rows.Count, 1).End(xlUp).Row
        
        If Cells(lngRow, 3).Value = strMachine Then
            
            If dtmTime - Cells(lngRow, 1).Value < TimeSerial(0, 5, 0) Then
                
                dtmTime = Cells(lngRow, 1).Value
                Call Rows(lngRow).Delete
                
            Else
                
                lngRow = lngRow + 1
                
            End If
        Else
            
            dtmTime = Cells(lngRow, 1).Value
            strMachine = Cells(lngRow, 3).Value
            lngRow = lngRow + 1
            
        End If
    Loop
End Sub

Gruß
Nepumuk

Anzeige
AW: Macro zur Filterung nach Abhängigkeiten
17.08.2015 10:36:00
Max
Hoi Nepumuk
das funktioniert schon ziemlich gut, danke vielmal soweit!!
Ich habe nur bemerkt, dass das Macro mit unterschiedlichen Zeiten und Maschinen Probleme bekommt.
Explizites Beispiel:
09:53 - Maschine 2
09:55 - Maschine 1
09:56 - Maschine 2
09:56 - Maschine 1
Die werden nicht gelöscht. Ansonsten funktioniert es wirklich prima, wenn ich die aktuellen Zahlen mit denen, wo ich von Hand gelöscht habe vergleiche, kann es sich durchaus sehen lassen.
LG Max

AW: Macro zur Filterung nach Abhängigkeiten
17.08.2015 11:14:18
Nepumuk
Hallo,
sortiere die Tabelle vor dem Löschen nach Maschinennummer und nach dem Löschen nach Uhrzeit. Das Sortieren kannst du ins Makro einbauen.
Gruß
Nepumuk

Anzeige
AW: Macro zur Filterung nach Abhängigkeiten
17.08.2015 11:28:36
Max
Hi,
habe ich gemacht, aber nun habe ich anstatt +600 Zeilen nur noch 107. Das Macro löscht sobald es sortiert wurde alle "doppelten" Maschinen, aber ich mag ja schon sehen wie oft Maschine XY am Tag sich am System meldet und was sie für Meldungen überträgt. Nun sehe ich Maschine 1, 2, 3, etc. nur noch einmal.
Zum Beispiel, Excelliste sortiert nach Spalte C, Maschine 1 von letzter Woche:
10:01
10:02
10:02
10:04
10:04
10:05
10:06
10:10
10:30
10:44
10:46
10:46
10:56
11:04
11:12
11:23
11:24
11:34
11:41
11:42
11:45
11:54
11:57
12:10
12:13
12:13
12:14
12:20
12:41
12:43
12:45
12:48
12:49
13:16
13:51
13:55
14:13
14:16
14:23
14:44
14:44
14:45
14:45
14:52
15:01
15:14
15:15
15:19
15:24
15:31
15:43
15:55
16:02
16:04
16:05
16:20
16:21
16:22
16:27
16:28
16:45
17:06
17:06
17:14
Nach dem Macro existiert nur noch der Eintrag von 10:01 Uhr. Danach folgt 09:05 Uhr mit Maschine 2.
LG Max

Anzeige
AW: Macro zur Filterung nach Abhängigkeiten
17.08.2015 13:39:26
Rudi
Hallo,
1. sortieren nach Maschine und Zeit
2. D2: =Falsch
3. D3 ff: =UND(C3=C2;A3&lt(A2+ZEIT(0;5;0)))
4. D:D nach WAHR filtern
5. Zeilen löschen.
Gruß
Rudi

AW: Macro zur Filterung nach Abhängigkeiten
17.08.2015 14:12:22
Max
Hallo Rudi,
ich habe deine Anleitung abgewandelt umgesetzt, nun bleibt mir noch die Frage:
a) Geht das auch automatisiert? (Täglich mehrere Dateien mit zig tausend Zeilen)
b) Wie kann ich nach der wahr Filterung z.b. alle mit wahr gekennzeichneten Zeilen, die Spalte B mit "XX" füllen, damit mein "delete" Makro es automatisch bereinigt, nach wahr kann ich nicht suchen, da die Zelle so nicht heisst. Momentan hab ich es mit xx gefüllt und dann runtergezogen, das dauert ein Weilchen.
Ansonsten muss ich sagen, funktioniert es perfekt! Zumindest spart es mir schon so rund 30 Minuten Zeit am Tag und das ist schon erheblich!
Vielen Dank!

Anzeige
AW: Macro zur Filterung nach Abhängigkeiten
17.08.2015 15:13:50
Rudi
Hallo,
per Duplikate entfernen:
Sub aaa()
Cells(1, 1).Sort _
key1:=Cells(2, 3), order1:=xlAscending, _
key2:=Cells(2, 1), order2:=xlAscending, _
Header:=xlYes
Cells(1, 4) = 0
Cells(2, 4) = 2
With Range(Cells(3, 1), Cells(Rows.Count, 1).End(xlUp)).Offset(, 3)
.FormulaR1C1 = "=IF(AND(RC[-1]=R[-1]C[-1],RC[-3]

Gruß
Rudi

AW: Macro zur Filterung nach Abhängigkeiten
17.08.2015 16:09:59
Max
Das Makro arbeitet 1A, noch viel weniger manuelle Schritte als je zuvor!
Vielen Dank für die erstklassige Hilfe Rudi und auch dir Nepu!
Eine gute Woche und LG
Max

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige