Jeder muss zu der einen oder anderen Zeit doppelte Einträge aus einer Liste von Texteinträgen löschen. Angenommen, Sie haben die Textwerte in Spalte A eines Arbeitsblatts und sie werden für ungefähr 500 Zeilen ausgeführt. Wenn Sie Duplikate in der Liste löschen möchten, suchen Sie möglicherweise nach dem einfachsten Weg, dies zu tun.

Manuell können Sie die Datenfilterung verwenden, um die eindeutigen Werte zu ermitteln.

Stellen Sie sicher, dass die Spalte oben eine Beschriftung hat, und wählen Sie dann eine Zelle in der Spalte aus. Wählen Sie Daten | Filter | Erweiterter Filter oder zeigen Sie in Excel 2007 die Registerkarte Daten des Menübands an und klicken Sie in der Gruppe Sortieren und Filtern auf Erweitert. Verwenden Sie die Steuerelemente im resultierenden Dialogfeld, um anzugeben, dass Sie die eindeutigen Werte an einen anderen von Ihnen angegebenen Speicherort kopieren möchten.

Sie können auch eine Formel verwenden, um die Duplikate in der Liste manuell zu bestimmen. Sortieren Sie die Werte in der Spalte und geben Sie die folgende Formel in Zelle B2 ein:

=IF(A2=A1,"Duplicate","")

Kopieren Sie die Formel in alle Zellen in Spalte B, die einen entsprechenden Wert in Spalte A haben. Wählen Sie alle Werte in Spalte B aus und drücken Sie Strg + C. Verwenden Sie das Dialogfeld Inhalte einfügen, um nur die Werte in dieselben ausgewählten Zellen einzufügen. Sie haben jetzt die Formeln in ihre Ergebnisse konvertiert. Sortieren Sie die beiden Spalten nach dem Inhalt von Spalte B, und alle Ihre doppelten Zeilen befinden sich in einem Bereich. Löschen Sie diese Zeilen, und Sie haben Ihre fertige Liste eindeutiger Werte.

Beide manuellen Ansätze sind schnell und einfach. Wenn Sie jedoch routinemäßig doppelte Werte aus einer Spalte löschen müssen, ist ein Makro möglicherweise eher Ihr Stil. Das folgende Makro basiert auf der erweiterten Datenfilterung, ähnlich wie die frühere manuelle Methode:

Sub CreateUniqueList()

Dim rData As Range     Dim rTemp As Range

Set rData = Range(Range("a1"), Range("A65536").End(xlUp))

rData.EntireColumn.Insert     Set rTemp = rData.Offset(0, -1)

rData.AdvancedFilter _         Action:=xlFilterCopy, _         CopyToRange:=rTemp, _         Unique:=True

rTemp.EntireColumn.Copy _         rData.EntireColumn     Application.CutCopyMode = False     rTemp.EntireColumn.Delete     Set rData = Nothing     Set rTemp = Nothing End Sub

Das Makro erstellt eine temporäre Spalte, kopiert die eindeutigen Werte mithilfe der erweiterten Filterung in diese Spalte und löscht dann die ursprüngliche Datenspalte.

Das Ergebnis sind nur eindeutige Werte in Spalte A. Wenn Sie nicht möchten, dass Ihr Makro die Datenfilterfunktion von Excel verwendet, führt das folgende Makro den Trick aus:

Sub DelDups()

Dim rngSrc As Range     Dim NumRows As Integer     Dim ThisRow As Integer     Dim ThatRow As Integer     Dim ThisCol As Integer     Dim J As Integer, K As Integer

Application.ScreenUpdating = False     Set rngSrc = ActiveSheet.Range(ActiveWindow.Selection.Address)



NumRows = rngSrc.Rows.Count     ThisRow = rngSrc.Row     ThatRow = ThisRow + NumRows - 1     ThisCol = rngSrc.Column

'Start wiping out duplicates     For J = ThisRow To (ThatRow - 1)

If Cells(J, ThisCol) > "" Then             For K = (J + 1) To ThatRow                 If Cells(J, ThisCol) = Cells(K, ThisCol) Then                     Cells(K, ThisCol) = ""

End If             Next K         End If     Next J

'Remove cells that are empty     For J = ThatRow To ThisRow Step -1         If Cells(J, ThisCol) = "" Then             Cells(J, ThisCol).Delete xlShiftUp         End If     Next J     Application.ScreenUpdating = True End Sub

Das Makro bearbeitet eine Auswahl, die Sie vor dem Aufruf treffen. Wenn Sie also doppelte Zellen aus dem Bereich A2: A974 entfernen müssen, wählen Sie einfach diesen Bereich aus und führen Sie das Makro aus. Wenn das Makro vollständig ist, werden die doppelten Zellen sowie alle leeren Zellen entfernt.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (2430) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: