Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Doppelten Teilstring identifizieren und prüfen

Forumthread: Doppelten Teilstring identifizieren und prüfen

Doppelten Teilstring identifizieren und prüfen
Rumah
Hallo Zusammen,
ich habe hier ein kleines Problem und weiß nicht, wie ich es per Makro lösen kann. Ein String besteht aus fünf Ziffern, einem Trennstrich und zwei darauf folgenden Ziffern. Dieser String ist in einer Spalte über x Zellen enthalten. Wie kann ich den gefüllten Bereich der Spalte auf folgende Bedingung prüfen und farbig markieren:
Vergleiche alle doppelt vorkommenden Strings mit den gleichen führenden fünf Ziffern und markiere diese, wenn das nach dem Trennstrich folgende Ziffernpaar bei diesen Strings unterschiedlich ist.
Anbei ein Beispiel, die Strings 42240-90 und 42240-91 kommen jeweils zwei Mal vor, fallen in die eben genannte Bedingung und sollten daher markiert werden.
42239-90
42240-90
42240-90
42241-90
42242-90
42243-90
42243-90
42244-90
42245-90
42245-90
42246-90
42249-90
68908-90
68909-90
68910-90
65353-89
65354-89
65354-89
65355-89
65356-89
65357-89
65358-89
40154-88
40154-88
40154-88
40154-88
40155-88
40155-88
40155-88
40155-88
40156-88
40156-88
40156-88
40156-88
40157-88
40157-88
42240-91
42240-91
Für eure Hilfe lieben Dank
Rumah
Anzeige
Bedingte Formatierung mit SUMMENPRODUKT
01.03.2012 00:25:39
Erich
Hi Ruhma,
die Bed. habe ich noch mal daneben in Spalte B geschrieben - brauchst du nicht:
 AB
242239-90FALSCH
342240-90WAHR
442240-90WAHR
542241-90FALSCH

Formeln der Tabelle
ZelleFormel
B2=SUMMENPRODUKT((LINKS(A2;5)=LINKS(A$2:A$39;5))*(RECHTS(A2;2)<>RECHTS(A$2:A$39;2)))>0

Bedingte Formatierungen der Tabelle
ZelleNr.: / BedingungFormat
A21. / Formel ist =SUMMENPRODUKT((LINKS(A2;5)=LINKS(A$2:A$39;5))*(RECHTS(A2;2)<>RECHTS(A$2:A$39;2)))>0Abc
A31. / Formel ist =SUMMENPRODUKT((LINKS(A2;5)=LINKS(A$2:A$39;5))*(RECHTS(A2;2)<>RECHTS(A$2:A$39;2)))>0Abc
A41. / Formel ist =SUMMENPRODUKT((LINKS(A2;5)=LINKS(A$2:A$39;5))*(RECHTS(A2;2)<>RECHTS(A$2:A$39;2)))>0Abc
A51. / Formel ist =SUMMENPRODUKT((LINKS(A2;5)=LINKS(A$2:A$39;5))*(RECHTS(A2;2)<>RECHTS(A$2:A$39;2)))>0Abc

Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
... wie ich es per (Makro!) lösen kann ;o) oT
01.03.2012 00:31:39
Matthias
Formatierung mit VBA-Makro
01.03.2012 01:00:16
Erich
Hi Rumah,
wenn die Werte ab Zeile 2 in Spalte A stehen (das hast du uns nicht verraten),
kann VBA das wohl so:

Option Explicit
Sub Dubletten()
Dim zz As Long, strT As String
For zz = 2 To Cells(Rows.Count, 1).End(xlUp).Row
strT = "=SUMPRODUCT((""" & Left(Cells(zz, 1), 5) & _
"""=LEFT(A$2:A$39,5))*(""" & Right(Cells(zz, 1), 2) & _
"""RIGHT(A$2:A$39,2)))"
If Evaluate(strT) > 0 Then Cells(zz, 1).Interior.Color = 65535
Next zz
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
P.S. @Matthias: Warum hast du das denn nicht gleich selbst geschrieben?
Anzeige
Sicher, weil er es für genauso überflüssig ...
01.03.2012 01:11:42
Luc:-?
…hielt wie du ursprgl, Erich! ;-)
Da bietet sich doch die Gegenfrage an, warum hast du's nun doch noch geschrieben? Und in Ergänzung dazu: Warum hast du es dann nicht wenigstens so geschrieben, dass es diese BedingtFormatierung herstellt? Denn du weißt doch auch, dass sich das Range-Objekt im Ggsatz zum FormatCondition-Objekt nicht quasi von selbst wieder entfärbt! ;-)
Gruß Luc :-?
Anzeige
AW: Formatierung mit VBA-Makro
01.03.2012 08:39:10
Rumah
Hallo Erich,
schaut schon mal sehr gut aus, lieben Dank bis hier her. Nur noch kurz eine Frage:
Du arbeitest u.a. mit einem statischen Bereich (A$2:A$39) während der abzufragende Bereich ja dynamisch ist, d.h. u.U. auch mehr als 39 Zeilen hat. Zerhaut es mir die Abfrage irgendwann mal bzw. wie passe ich diesen Parameter noch auf den dynamischen Bereich an?
A$2:A$39 - "39" sollte den Wert der letzten Zeile im Bereich annehmen, oder ist das egal?
Beste Grüße und einen guten Tag
Rumah
Anzeige
Formatierung mit VBA-Makro - variabler
01.03.2012 09:32:51
Erich
Hi Rumah,
das ginge so:

Option Explicit
Sub Dubletten2()
Dim lngZ As Long, zz As Long, strT As String
lngZ = Cells(Rows.Count, 1).End(xlUp).Row
For zz = 2 To lngZ
strT = "=SUMPRODUCT((""" & Left(Cells(zz, 1), 5) & _
"""=LEFT(A$2:A$" & lngZ & ",5))*(""" & Right(Cells(zz, 1), 2) & _
"""RIGHT(A$2:A$" & lngZ & ",2)))"
If Evaluate(strT) > 0 Then Cells(zz, 1).Interior.Color = 65535
Next zz
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
P.S. @Matthias: Ja, das ist ein guter Grund! :-)
Anzeige
AW: Formatierung mit VBA-Makro - variabler
02.03.2012 07:53:27
Rumah
Hallo Erich,
lieben Dank. Hat so funktioniert.
@Matthias - Auch Dir lieben Dank für den nächtlichen Einsatz
Rumah
@Erich, ich war schon fast in der Koje - owT
01.03.2012 08:44:16
Matthias
;
Anzeige
Anzeige

Infobox / Tutorial

Doppelten Teilstring in Excel identifizieren und markieren


Schritt-für-Schritt-Anleitung

Um doppelte Teilstrings in Excel zu identifizieren und farbig zu markieren, kannst Du folgende Schritte befolgen:

  1. Öffne Excel und stelle sicher, dass Deine Daten in Spalte A ab Zeile 2 beginnen.

  2. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen > Modul.
  4. Kopiere den folgenden Code in das Modul:

    Option Explicit
    Sub Dubletten()
       Dim zz As Long, strT As String
       For zz = 2 To Cells(Rows.Count, 1).End(xlUp).Row
           strT = "=SUMPRODUCT((" & Left(Cells(zz, 1), 5) & _
           "=LEFT(A$2:A$39,5))*(" & Right(Cells(zz, 1), 2) & _
           "<>RIGHT(A$2:A$39,2))"
           If Evaluate(strT) > 0 Then Cells(zz, 1).Interior.Color = 65535
       Next zz
    End Sub
  5. Starte das Makro:

    • Gehe zurück zu Excel, drücke ALT + F8, wähle Dubletten aus und klicke auf Ausführen.

Die Zellen mit doppelten Teilstrings, die die Bedingung erfüllen, werden nun gelb markiert.


Häufige Fehler und Lösungen

  • Fehler: Makro funktioniert nicht

    • Lösung: Stelle sicher, dass Du die richtigen Zellreferenzen in Deinem VBA-Code verwendest. Überprüfe, ob Deine Daten tatsächlich in Spalte A stehen und ab Zeile 2 beginnen.
  • Fehler: Falsche Formatierung

    • Lösung: Überprüfe den VBA-Code, insbesondere die LEFT und RIGHT Funktionen, um sicherzustellen, dass sie korrekt auf die Zellen zugreifen.

Alternative Methoden

Wenn Du kein VBA verwenden möchtest, kannst Du auch die bedingte Formatierung nutzen:

  1. Markiere die Daten in Spalte A.

  2. Gehe zu Start > Bedingte Formatierung > Neue Regel.

  3. Wähle Formel zur Ermittlung der zu formatierenden Zellen verwenden.

  4. Gib die folgende Formel ein:

    =SUMMENPRODUKT((LINKS(A2;5)=LINKS($A$2:$A$39;5))*(RECHTS(A2;2)<>RECHTS($A$2:$A$39;2)))>0
  5. Wähle das gewünschte Format (z.B. Hintergrundfarbe) und klicke auf OK.


Praktische Beispiele

Angenommen, Du hast die folgenden Strings in Spalte A:

42240-90
42240-91
42240-90
42241-90

Mit dem oben beschriebenen Makro oder der bedingten Formatierung werden die Zellen mit "42240-90" markiert, da dieses Format in mehrfacher Ausführung mit unterschiedlichen Endziffern vorhanden ist.


Tipps für Profis

  • Dynamische Bereiche: Um die Abfrage dynamisch zu gestalten, kannst Du in VBA den Bereich anpassen, sodass er automatisch die letzte Zeile berücksichtigt. Beispiel:

    lngZ = Cells(Rows.Count, 1).End(xlUp).Row
  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um sicherzustellen, dass das Makro auch bei unerwarteten Eingaben stabil läuft.


FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um mehr als 39 Zeilen zu überprüfen?
Du kannst die statische Zeilenangabe (A$2:A$39) durch eine dynamische Variable ersetzen, die die letzte Zeile ermittelt.

2. Funktioniert dies auch in Excel 365?
Ja, die beschriebenen Methoden funktionieren in Excel 365 sowie in älteren Versionen von Excel, die VBA unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige