Löschen doppelter Textwerte (Microsoft Excel)
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: