Wie entfernt man Zeilen in Excel, in denen Einschlüsse nicht eingehalten werden? - übertreffen, vba

Angenommen, ich habe zwei Spalten:

ID, Code
1 A
1 B
1 G
2 A
2 F
3 A
3 B
3 C
3 F
4 B

Ich möchte alle Zeilen löschen, für die die ID-Nummer nicht mit A und B verknüpft ist.

So sind beispielsweise alle Zeilen mit ID = 1 in Ordnung, da sie mit Code A und Code B verknüpft sind.

Alle Zeilen mit ID = 2 sollen gelöscht werden, da sie A, aber keine B haben.

Alle Zeilen mit ID = 3 sind OK, da sie sowohl A als auch B haben.

Alle Zeilen mit ID = 4 sind zu löschen, da sie nur B, nein A haben.

Die reale Datei hat viele Zeilen, so dass ich das nicht manuell machen kann. Gibt es einen schnelleren Weg? Ich habe versucht, Vlookups irgendwie zu verwenden, aber ich kann keinen Weg finden, um einfach zu sagen, welche zu löschen sind.

Antworten:

2 für die Antwort № 1

Verwenden COUNTIFS:

=COUNTIFS(A:A,A1,B:B,"A")+COUNTIFS(A:A,A1,B:B,"B")

Löschen Sie alle Ergebnisse, die 0 oder 1 zurückgeben (und behalten Sie alle Ergebnisse, die 2 ergeben).


1 für die Antwort № 2

Verwendung von 2 temporären Helferspalten in C & D

1. Spalte = A2 & B2, abgeschrieben
2. Spalte =IF( OR( ISERROR(Vlookup(A2 & "A",C:C,1,FALSE)),ISERROR(Vlookup(A2 & "A",C:C,1,FALSE))),"DeleteMe","SaveMe")

Befolgen Sie die Anweisungen in Spalte D

Löschen Sie Spalten C & D

Vergessen Sie nicht, dies zuerst auf einem Backup zu versuchen, damit Sie sicher sein können, dass es zu Ihrer Zufriedenheit funktioniert


Speisekarte