6.5k Aufrufe
Gefragt in Tabellenkalkulation von halfstone Profi (18.1k Punkte)
Hi,

ich hab hier eine Tabelle mit einer Spalte mit Wortphrasen drin, also Kombinationen von Wörtern.

In dieser Tabelle kommen bestimmte Phrasen ab und an mehrfach hintereinander vor, diese will ich eliminieren.

Also nicht wie in Excel 2007 möglich die Duplikatsuche und dann Duplikate entfernen, da dann alle Vorkommen gelöscht werden ich aber eigentlich wissen will wie oft eine Phrase vorkommt, aber eben diese aufeinanderfolgenden Mehrfachvorkommen nicht mitzählen möchte.

Als Beispiel vielleicht mal ein paar Daten:

formatieren
rundll
PDF to Word
xp friert ein
PDF to Word
iso
w-lan ohne router
avi zu mpg
Skype
PDF to Word
PDF to Word
PDF to Word

Hier sollte also "PDF to Word" am Ende nicht drei mal gezählt werden sondern das zweite und dritte Vorkommen gelöscht werden.

Ergebnis sollte dann sein:

formatieren
rundll
PDF to Word
xp friert ein
PDF to Word
iso
w-lan ohne router
avi zu mpg
Skype
PDF to Word

Richtig toll wäre es wenn man noch den Abstand eingeben könnte unter dem Doppelungen gelöscht werden.

Also dass auch Zeilen gelöscht werden wenn die Vorkommen nicht direkt nacheinander sondern eben erst x Zeilen danach auch noch vorkommen.

Hoffe ich hab mich verständlich ausgedrückt.

Gruß Fabian

16 Antworten

0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Fabian,

das lässt sich vorzüglich mit dem Spezialfilter lösen.

Hab Dir mal ein Beispiel angehängt, wo der Filterstart per Makro
ausgelöst wird.

Da Du oben von Excel2007 sprichst habe ich es als .xlsm -File
gespeichert.

rapidshare.com/files/268255198/Filter.xlsm.html

Gruß
Rainer
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

Versuch es mal hiermit

Sub Doppelte_direkt()
Max = InputBox("maximalen Abstand der doppelten Werte eingeben", , Pnr)
For i = Range("A65536").End(xlUp).Row To 2 Step -1
If i <= Max Then Max = i - 1
For j = 1 To Max
If Range("A" & i).Value = Range("A" & i - j).Value Then
Range("A" & i).Select
Selection.EntireRow.Delete
End If
Next j
Next i
End Sub


Du kannst den max. Abstand zwischen gleichen fetxten über Eingabe festlegen

Gruß

Helmut
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

ich vermisse die deklaration der variablen,sie sind nun unnoetigerweise allesamt als variant deklariert,die namensgebung ist auch nicht so berauschend :-))

statt 65536 waere rows.count praktischer um kompatibel zu bleiben

gruss nighty

p.s.
aber schon mal schoen eingerueckt :-)))
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
hallo @ nighty,

warum moserst du nur rum, anstatt dene Verbesserungen gleich einzubauenß

Gruß

Helmut
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

ich moser nicht :-)

ich korrigiere

gruss nighty
0 Punkte
Beantwortet von m-o-m Mitglied (499 Punkte)
Hallo an Alle,

wenn ich mich mal eine Anmerkung machen darf.

Warum denn nicht mit einer Hilfsspalte:

In Spalte A sin die Daten wie oben beschrieben, in Spalte B kommt ab B2 die folgende Formel und runterziehen.

=Wenn(A1=A2;"X";"")

Danach mit dem Filter die X markieren und löschen.

Oder denke ich hier zu einfach???

Gruß Maik
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
@ m-o-m

wenn ich mich mal eine Anmerkung machen darf.


... selbstverständlich darfst Du das.

Aber warum Hilfsspalte - Filtern - Löschen, wenn das der Spezialfilter auf
einem Ritt macht uns nebenbei die Originaldaten noch erhalten bleiben???

Gruß
Rainer
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
hallo @m-o-m ,

die Lösung ist grundsätzlich richtig, bereitet aber Probleme wenn keine unmittelbar Folge besteht wie @halfstone es wünscht.

Gruß

Helmut
0 Punkte
Beantwortet von halfstone Profi (18.1k Punkte)
Hi und vielen Dank schon mal für die vielen Vorschläge,

ich hab alle schon ausprobiert und komme mit dem von Saarbauer am besten klar, nur weiß ich nicht genau ob der nicht zu viel des Guten macht, das muss ich noch mal testen, danach bei x=5 waren überhaupt keine Duplikate mehr da, und das glaube ich nicht ganz ;-)

Mit rainbergs Lösung verstehe ich nicht wie ich mehr Daten eingeben kann also meine Liste ist ca. 2500 Datensätze lang und kann auch noch sehr viel länger werden.
Ich hab versucht die Daten per cut & paste in dei Exceltabelle zu tun und dann den Bereich zu erweitern, das hat aber zu einem sehr seltsamen Ergebnis geführt.

Mag daran liegen, dass ich mich mit Excel inzwischen überhaupt nicht mehr auskenne, wie ich gemerkt habe.

Gruß Fabian
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Fabian,

anbei die angepasste Datei.

in A4 steht die Spaltenüberschrift (ist zwingend)
in A2 steht das Kriterium =ZÄHLENWENN(A5:A6;A5)=1
A1 und A3 müssen leer bleiben
A5:Axxxxx stehen die zu filternden Daten.

Ansonsten brauchst Du nur den Button zu drücken, egal wie lang Deine Liste
ist

rapidshare.com/files/268295968/Filter_2.xlsm.html

Gruß
Rainer
...