Doppelte Werte in Spalten/Zeilen löschen

Ich habe eine Excel-Datei mit 10 Spalten und ungefähr 2500 Zeilen.

Die Werte in den Zeilen wiederholen sich- das sieht dann beim sortieren in einer Spalte z.B. so aus:

4567
4567
4567
4567

Die Werte die in den Spalten stehen sind unterschiedlich:

4567 123 345
4567 678 3150
4567 777 653

Ich will jetzt die Zeilen mit gleichen Werten automatisch löschen lassen, da ich nur einmal die Nummer benötige:

4567 123 345
4567 678 3150 löschen
4567 777 653 löschen

Bekommt man das in Excel irgendwie einfach durch eine Formel hin, oder muss man ein Makro dafür programmieren?

Vielen Dank im Voraus für Eure Hilfe!!!

Hi Syl,

Es gibt hier mehrere Möglichkeiten.

Fangen alle Werte, welche gelöscht werden sollen, mit „4567“ an?

Wenn ja, dann würde ich im Excel unter dem Menüpunkt „Daten“, „Text in Spalten“, die Werte in einer neuen Spalte separieren und anschliessend die Spalte mit den nicht benötigten Werte löschen.

Sind die Werte verschieden, jedoch die Anzahl der Zahlen, welche entfernt werden soll, die selbe, dann würde ich die Formel „LINKS“ anwenden.

Gruß
Lennyle

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Lennyle,

vielen Dank erst mal für Deine Antwort.

Leider sind die Werte die ich löschen will nicht immer „4567“. Es sind immer nur Werte in den Zeilen der Spalte A, die sich schon mal wiederholen.

Vielleicht ist es einfacher, wenn ich erkläre um was für eine Auswertung es sich handelt: Es ist eine Rechnungsausgangsliste aus unserem Warenwirtschaftssystem. Das System wirft leider nicht nur die einzelnen Rechnungsnummern aus, sondern auch jede Unterposition. d.h. ich habe in Excel unter der eigentlichen Rechnungsnr. noch X-Mal die gleiche Nr. mit den ganzen Einzelpositionen wie Verpackung etc (halt dann nur in den folgenden Zeilen). Ich will jedoch eigentlich nur wissen wie viele Rechnungen in einem Jahr geschrieben wurden.

Jetzt dachte ich mir dass es vielleicht eine Formel gäbe die in etwa so aussähe (ich schreibe das mal nicht Excel-mäßig auf :smile:: „Wenn der Wert der Zeile A sich in Zeile B, C, und D wiederholt werden automatisch die Zeilen B, C und D gelöscht.“ Ich will halt irgendwie drumherum kommen, die Zeilen von Hand löschen zu müssen.

Das mit Links klappt glaube ich da leider nicht, da die Anzahl der zu löschenden Zellen immer unterschiedlich ist (hängt halt mit der unterschiedlichen Anzahl an Rechnungspositionen zusammen).

Vielleicht fällt Dir ja noch etwas anderes ein??? Vielen Dank schon mal im Voraus.

Es gibt hier mehrere Möglichkeiten.

Fangen alle Werte, welche gelöscht werden sollen, mit „4567“
an?

Wenn ja, dann würde ich im Excel unter dem Menüpunkt „Daten“,
„Text in Spalten“, die Werte in einer neuen Spalte separieren
und anschliessend die Spalte mit den nicht benötigten Werte
löschen.

Sind die Werte verschieden, jedoch die Anzahl der Zahlen,
welche entfernt werden soll, die selbe, dann würde ich die
Formel „LINKS“ anwenden.

Gruß
Lennyle

Ich habe eine Excel-Datei mit 10 Spalten und ungefähr 2500
Zeilen.

Die Werte in den Zeilen wiederholen sich- das sieht dann beim
sortieren in einer Spalte z.B. so aus:

4567
4567
4567
4567

Die Werte die in den Spalten stehen sind unterschiedlich:

4567 123 345
4567 678 3150
4567 777 653

Ich will jetzt die Zeilen mit gleichen Werten automatisch
löschen lassen, da ich nur einmal die Nummer benötige:

4567 123 345
4567 678 3150 löschen
4567 777 653 löschen

Bekommt man das in Excel irgendwie einfach durch eine Formel
hin, oder muss man ein Makro dafür programmieren?

Vielen Dank im Voraus für Eure Hilfe!!!

Hallo Syl,

probier mal das:

Sub DoppelteZeilenLöschen()
Dim intMem(10) As Integer
Dim intZeilenindex As Integer

For intZeilenindex = 1 To 1000
If Cells(intZeilenindex, 1) = „“ Then Exit For

If intMem(Cells(intZeilenindex, 1)) = 1 Then
Rows(intZeilenindex).Delete
intZeilenindex = intZeilenindex - 1
Else
intMem(Cells(intZeilenindex, 1)) = 1
End If
Next
End Sub

Bei „DIM intMem(10) as Integer“ schreibst Du anstelle der „10“ den größten Wert rein, der in der Spalte maximal vorkommt. Und in der Zeile „For intZeilenindex = 1 To 1000“ setzt Du statt „1000“ die Anzahl der Zeilen (oder mehr: leere Zeilen werden nicht bearbeitet) ein.

Martin

Grüss Dich Syl,

Kann man jedoch davon ausgehen, dass die Anzahl Stellen der Rechnungsnummer gleich hoch ist?

Wenn ja, würde ich folgendes machen, wobei ich jetzt einfach annehme, dass die ersten 4 Stellen die Rechnungsnummer sind:

Beispiel:
Inhalt von Spalte A:
1234567890
1234567890
1234567890
1234567356
123456728
1234567890
1234567890
1234567890
1234567055
1234567890
1234567890
1234567890
1234567890
1234887890

Spalte A markieren, Menüpunkt („Daten“, „Text in Spalten“ wählen, „Feste Breite“ selektieren), dann mit der Maus die ersten vier Stellen selektieren.

Anschliessend gibt es Spalte A und B:
1234 567890
1234 567890
1234 567890
1234 567356
1234 56728
1234 567890
1234 567890
1234 567890
1234 567055
1234 567890
1234 567890
1234 567890
1234 567890
1234 887890

Dann alles markieren, Menüpunkt (Daten, Teilergebnisse wählen), und Gruppieren nach den ersten vier Stellen.

Oder …
Formel
=WENN(LINKS(A1;4)=LINKS(B1;4);„jo“;"")

Dann erhältst Du nur mehr die 4 Stellen, welche identisch sind, siehe nachfolgendes:
Sp A: B: C:
1234 567890
1234 567890
1234 567890
1234 567356
1234 56728
1234 1234999 jo
1234 567890
1234 567890
1234 12345 jo
1234 567890
1234 567890
1234 567890
1234 567890
1234 887890

… oder, Du setzt einen Filter pro Spalte.

ZB: mit Filter … =links(A1;4)=1234

Ich weiss nicht, ob Dir diese Formeln etwas nützen, ansonsten bleibt wirklich nur mehr ein Makro.

Gruß
Lennyle

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Euch beiden erst mal vielen Dank! Ich werde das jetzt am Wochenende beides mal ausprobieren und lasse Euch wissen, ob es geklappt hat.

Vielen Dank noch mal und ein schönes Wochenende!

Hallo Syl,

ist zwar „etwas“ mühsam, aber ohne Makro:

Zeilen nach der Spalte sortieren, in der die Doppelten sein können. Ggfs. so einrichten, dass die Zeile die übrigbleiben soll oben steht. (Z.B. eine Datumsspalte)

In eine Hilfssaplte eine Formel:

=WENN(E2=E3;„x“;"")

Hier ist die Spalte mit den „Doppelten“ „E“ nud die Formel steht in der Zeile 3. Die in alle Zeilen kopieren. Dadurh werden die „Doppelten Zeilen“ mit einem „x“ gekennzeichnet. Nun per AutoFilter auf die Hillfsspalte die „ge-Xten“ Spalten filtern, alle markieren und löschen. Filter aufheben und?

Aber bitte (versteht sich wohl von selbst) mit eine Kopie!

mfg

Dirk.Pegasus

Hi Leute,

ich habe das jetzt wie angekündigt dieses Wochenende alles mal ausprobiert.

Alles hat irgendwie geklappt, aber letztlich am einfachsten war der Tipp von Dirk (zumindest für jemanden der von Makro-Programmierung nicht so viel Ahnung hat :smile:).

Vielen Dank Euch allen noch mal, jetzt habe ich ganz viele Möglichkeiten mir die Arbeit zu erleichtern.

Viele Grüße,

Syl