Thema Datum  Von Nutzer Rating
Antwort
20.10.2016 15:24:59 Anja
NotSolved
20.10.2016 21:16:52 Gast89928
NotSolved
21.10.2016 09:06:48 Anja
NotSolved
21.10.2016 14:29:58 Gast5494
NotSolved
21.10.2016 14:51:18 Gast61412
NotSolved
Blau Doppelte in einer Gruppe identifizieren und Duplikate in einer andern Spalte löschen
21.10.2016 19:42:00 Gast42838
NotSolved
24.10.2016 09:19:01 Anja
NotSolved

Ansicht des Beitrags:
Von:
Gast42838
Datum:
21.10.2016 19:42:00
Views:
686
Rating: Antwort:
  Ja
Thema:
Doppelte in einer Gruppe identifizieren und Duplikate in einer andern Spalte löschen

Moin!

Also noch ein kleiner Exkurs. Wenn das dein Datensatz ist:

114 1
114 2
114 1

Würde Duplikte löschen  die Werte in der letzten Zeile leeren und die Daten darunter hochziehen. Er würde also das Paar SpalteA und SpalteB je Zeile prüfen.  Egal.

Hier mal ein Code der hoffentlich das gewünschte Ergebnis bringt. Ich bin davon ausgegangen, dass die Daten sortiert sind (also die in Spalte A). WEnn nich vorher noch sortieren (könnte man in den Code einbauen, wenn nicht sortiert werden darf, wird der Code komplizierter). Wenn in A die selbe Zahl kommt und in dem Bereich in B auch der Wert doppelt ist, wird in B der Wert gelöscht. Wie immer erstmal an einem Musterdatensatz probieren und nicht auf die ungesicherten Rohdaten loslassen.

VG

 

Option Explicit
Sub b_werte_clearen()

Dim ende As Long
Dim daten
Dim zeile As Long
Dim wertA As Variant
Dim wertB As Variant
Dim wechsel As Boolean
Dim zwischenspeicher As String

'Anzahl der Eintragungen
ende = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row

'Daten aus Spalte A und B
daten = ActiveSheet.Range(ActiveSheet.Cells(1, 1), ActiveSheet.Cells(ende, 2))

'durch alle Daten in Spalte A
wertA = ""
For zeile = 1 To ende
    'schauen ob es leer ist
    wertA = daten(zeile, 1)
    
    If wertA <> "" Then
        'Daten sind nicht leer, so lange bis ein andere Wert in A kommt
        wechsel = False
        'die schon vorhandenemn Werte
        zwischenspeicher = ""
        While wechsel = False
        
            'prüfen ob der wert in B schonmal da war
            If InStr(1, zwischenspeicher, daten(zeile, 2) & ";", vbTextCompare) > 0 Then
                'der Wert war schonmal da, dann löschen
                daten(zeile, 2) = ""
            Else
                'Wert war noch nicht da
                zwischenspeicher = zwischenspeicher & daten(zeile, 2) & ";"
            End If
            'i nnächster Zeie schauen
            zeile = zeile + 1
            If zeile > ende Then
                wechsel = True
            Else
                If daten(zeile, 1) <> wertA Then wechsel = True
            End If
        Wend
        'wieder eins zurück da bei next der nöchste Wert kommt
        zeile = zeile - 1
    End If
Next zeile

'Daten wieder zurück schreiben
ActiveSheet.Range(ActiveSheet.Cells(1, 1), ActiveSheet.Cells(ende, 2)) = daten

End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
20.10.2016 15:24:59 Anja
NotSolved
20.10.2016 21:16:52 Gast89928
NotSolved
21.10.2016 09:06:48 Anja
NotSolved
21.10.2016 14:29:58 Gast5494
NotSolved
21.10.2016 14:51:18 Gast61412
NotSolved
Blau Doppelte in einer Gruppe identifizieren und Duplikate in einer andern Spalte löschen
21.10.2016 19:42:00 Gast42838
NotSolved
24.10.2016 09:19:01 Anja
NotSolved