Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Vergleich von den ersten elf Zeichen

Vergleich von den ersten elf Zeichen
23.11.2020 08:50:22
den
Hallo zusammen,
ich habe im Moment zwei Tabellen. Ich vergleiche bereits zwei Spalten (eine aus der jeweiligen Tabelle) mit einander und falls es keine Übereinstimmung in eine der Zellen in der Tabelle1 gibt dann wird die Zeile komplett gelöscht. Nun will ich das bei diesem Vergleich nur die ersten 11 Stellen der Zellen in den jeweiligen Spalten überprüft werden. Dazu würde ich gerne eine VBA Lösung bekommen.
Danke!
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vergleich von den ersten elf Zeichen
23.11.2020 09:00:17
den
Hallo Kerem,
es muss nicht immer VBA sein (insbesondere wenn es einmalig ist):
_ lege eine Hilfespalte mit =LINKS(A2;11)=LINKS(B2;11) //Vergleich der 11 ersten Zeichen
_ lege eine Hilfespalte mit =Zeile()
_ Kopieren, als Wert einfügen
_ füge die Filterung an
_ sortiere nach der Vergleichspalte
_ Filter nach WAHR, also wo die ersten Zeichen gleich sind
_ markieren den Block
_ entferne die Zeilen
_ sortiere wieder nach eingefrorenen Zeilennummer (originale Reihenfolge)
_ entferne die Hilfspalten
Mit Übung ca. 40 Sek.
Viel Erfolg
Yal
(da die Frage "mit VBA" war, lasse ich die frage asl unbenatwortet)
Anzeige
AW: Vergleich von den ersten elf Zeichen
23.11.2020 09:06:37
den
Hallo Yal,
danke erstmal für die Antwort! In meinem Fall muss es jedoch wirklich VBA sein, da die Sache auch nicht einmalig ist würde sich das ganze gut eignen.
AW: Vergleich von den ersten elf Zeichen
23.11.2020 09:21:05
den
Edit: Das heißt wenn die ersten 11 Zeichen nicht gleich sind soll die Zeile aus Tabelle 1 gelöscht werden.
AW: Vergleich von den ersten elf Zeichen
23.11.2020 09:29:51
den
Hi
am besten so.
1. Füge am Ende der Tabelle1 eine Hilfsspalte mit folgender Formel ein:
=Wenn(IstZahl(Vergleich(Links(A1;11)&"*";Tabelle2!A:A;0));Zeile();0)
2. Schreibe in die Überschirftenzeile der Hilfsspalte die 0
3. wende jetzt auf die ganze Tabelle1 die Menüfunktion DATEN - DATENTOOLS - DUPLIKATE ENTFERNEN an mit der Hilfesspalte als Kriterium
4. leere die Hilfsspalte.
und ja, das ist auch der Weg, den du in einer VBA-Lösung einsetzen solltest, weil es einfach zu programmieren und trotzdem sehr schnell ist.
Der Recorder hilft dir dabei.
Gruß Daniel
Anzeige
AW: Vergleich von den ersten elf Zeichen
23.11.2020 10:07:50
den
Hallo Kerem,
nach dem 2 Leute deine Frage nicht beantwortet haben, bekomme ich doch Mitleid ;-)
Da der Code auf "Me" zugreift, sollte er im Codefenster des Zielarbeitsblatt liegen.
Beim Löschen in Schleife hat man immer das Problem, dass wenn die Zeile 8 gelöscht wird, die Zeile 9 wird 8 und die nächste zu testen die ehemalige 10 ist. Die ehemalige 9 wird übersprungen. Deswegen löscht man "von unten": For .. Step -1
Sub Zeile_löschen()
Dim LZ As Integer 'Variable für letzte Zeile
Dim i
Const Z1 = 2 'erste Zeile, hier die zweite
Const S1 = 1 'erste Spalte, also A
Const S2 = 2 'Spalte nr 2, also B
LZ = Me.UsedRange.SpecialCells(xlCellTypeLastCell).Row
For i = LZ To 2 Step -1
If LCase(Left(Me.Cells(i, S1), 11)) = LCase(Left(Me.Cells(i, S2), 11)) Then
Me.Cells(i, 1).EntireRow.Delete Shift:=xlUp
End If
Next
End Sub
Viel Erfolg
Yal
Anzeige
AW: Vergleich von den ersten elf Zeichen
23.11.2020 14:00:00
den
Hey Yal,
beispielhaft kann ich dir sowas sagen: In Tabelle 2 steht Mann und in Tabelle1 steh Manni, Mannu, Mannn. Nach einem normalen Vegrleich wären die Zellen in Tabelle 1 nicht gelöscht deshalb sollen nur die ersten 4 Zeichen verglichen werden womit dann die Zellen gelöscht werden würden. Es wäre nett wenn du meinen Code dafür modifizieren könntest.
Hier mal mein Code:

Einspalte = -1
For j = 1 To 999
If ws.Cells(1, j) = KOSTENSTELLE Then
Einspalte = j
Exit For
End If
Next j
If Einspalte > 0 Then
If Not Einspalte = "" Then
For IntZeile = ZeilenanzahlNSD To 2 Step -1
WertGefunden = False
strwert1 = ws.Cells(IntZeile, CInt(Einspalte)).Value
For IntZeileWS2 = 1 To 3
strwert2 = ws2.Cells(IntZeileWS2, 1).Value
If strwert1 = strwert2 Then
WertGefunden = True
Exit For
End If
Next IntZeileWS2
If WertGefunden = False Then 'Wenn es kein Übereinstimmung gibt dann...
res = ws.Cells.Rows(IntZeile).Delete '... ganze Zeile löschen.
End If
Next IntZeile
End If
Else

Anzeige
AW: Vergleich von den ersten elf Zeichen
23.11.2020 18:01:03
den
Hallo Kerem,
Sub LöschListe_durchgehen()
Dim i
Dim WQ As Worksheet 'Quelle
Dim WZ As Worksheet 'Ziel
Set WQ = ThisWorkbook.Worksheets("Tabelle1")
Set WZ = ThisWorkbook.Worksheets("Tabelle2")
For i = 1 To 999
Zeile_löschen WZ, 1, WQ.Cells(i, 1)
Next
End Sub
Sub Zeile_löschen(ZielTab As Worksheet, ZielSpalte As Integer, RefText As String)
Dim i
For i = ZielTab.UsedRange.SpecialCells(xlCellTypeLastCell).Row To 2 Step -1
If InStr(1, ZielTab.Cells(i, ZielSpalte), RefText) = 1 Then
ZielTab.Cells(i, 1).EntireRow.Delete Shift:=xlUp
End If
Next
End Sub
Bitte setzt Dich mit dem Coding auseinander. Aus "Basiskenntnisse" sollte mehr werden.
Viel Erfolg
Yal
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Vergleich der ersten Zeichen in Excel


Schritt-für-Schritt-Anleitung

Um nur die ersten Zeichen einer Zelle in Excel zu vergleichen, kannst du folgende Schritte befolgen:

  1. Hilfsspalte erstellen: Füge eine neue Spalte hinzu, in der du die Formel zur Überprüfung der ersten Zeichen eingibst. Zum Beispiel, um die ersten 11 Zeichen zu vergleichen, verwende:

    =LINKS(A2; 11) = LINKS(B2; 11)

    Diese Formel gibt TRUE zurück, wenn die ersten 11 Zeichen von Zelle A2 und B2 gleich sind.

  2. Daten filtern: Verwende die Filterfunktion, um nur die Zeilen anzuzeigen, bei denen die Hilfsspalte TRUE anzeigt.

  3. Zeilen löschen: Markiere die gefilterten Zeilen und lösche sie, wenn die ersten Zeichen nicht übereinstimmen.

  4. Hilfsspalte entfernen: Nachdem du die unerwünschten Zeilen gelöscht hast, kannst du die Hilfsspalte wieder entfernen.


Häufige Fehler und Lösungen

  • Formel gibt Fehler zurück: Überprüfe, ob die Zellen, die du vergleichst, Text und nicht leere Zellen oder Fehlerwerte enthalten.
  • Zeilen werden nicht richtig gelöscht: Stelle sicher, dass du die Filterfunktion korrekt angewendet hast und die Hilfsspalte richtig eingerichtet ist.
  • VBA funktioniert nicht: Stelle sicher, dass der Code im richtigen Arbeitsblattmodul eingefügt wurde und dass die Referenzen zu den Zellen korrekt sind.

Alternative Methoden

Es gibt mehrere Wege, um die ersten Zeichen in Excel zu vergleichen:

  1. VBA-Lösung: Wenn du häufig die ersten Zeichen vergleichen musst, kann ein VBA-Skript hilfreich sein. Hier ein Beispiel:

    Sub Zeile_löschen()
       Dim LZ As Integer
       Dim i
       LZ = Me.UsedRange.SpecialCells(xlCellTypeLastCell).Row
       For i = LZ To 2 Step -1
           If Left(Me.Cells(i, 1), 11) <> Left(Me.Cells(i, 2), 11) Then
               Me.Rows(i).Delete
           End If
       Next i
    End Sub
  2. Verwendung von Excel-Funktionen: Du kannst auch die Funktion VERGLEICH verwenden, um die ersten Zeichen zu vergleichen. Kombiniere dies mit LINKS, um nur die gewünschten Zeichen zu berücksichtigen.


Praktische Beispiele

  1. Beispiel für den Vergleich von 5 Zeichen: Wenn du nur die ersten 5 Zeichen vergleichen möchtest, kannst du die Formel wie folgt anpassen:

    =LINKS(A2; 5) = LINKS(B2; 5)
  2. VBA für 3 Werte vergleichen: Um drei Werte zu vergleichen, könntest du eine Schleife in VBA verwenden, um alle drei Spalten zu durchlaufen und die ersten Zeichen zu überprüfen.


Tipps für Profis

  • Nutze die Excel-Funktion TEXTVERKETTEN, um mehrere Zellen zusammenzufassen und so den Vergleich zu erleichtern.
  • Überlege, ob der Einsatz von bedingter Formatierung hilfreich sein könnte, um Übereinstimmungen visuell hervorzuheben.
  • Automatisiere den Prozess mit VBA, um Zeit zu sparen, besonders wenn es sich um regelmäßige Aufgaben handelt.

FAQ: Häufige Fragen

1. Wie vergleiche ich nur die ersten 2 Zeichen einer Zelle?
Verwende die Formel:

=LINKS(A2; 2) = LINKS(B2; 2)

2. Was mache ich, wenn die Zellen Text und Zahlen enthalten?
Verwende die Funktion TEXT, um sicherzustellen, dass die Vergleiche korrekt sind. Zum Beispiel:

=TEXT(A2; "0") = TEXT(B2; "0")

3. Wie kann ich die ersten 10 Zeichen anzeigen?
Benutze die Formel:

=LINKS(A2; 10)

4. Wie kann ich die ersten x Zeichen aus einer Zelle übernehmen?
Verwende die Funktion LINKS und ersetze x durch die Anzahl der gewünschten Zeichen:

=LINKS(A2; x)

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