Wie kann man in einem Text alle gleichen Wörter ausfindig machen und markieren?

6 Antworten

Hol dir Notepad++, wenn du da irgendeinen Text markierst, werden automatisch alle Stellen, an denen dieser Text auch vorkommt hervorgehoben.

mit Strg+F kannst du auch noch eine Suche öffnen, bei der du auswählen kannst dass ein bestimmtes Wort überall im Dokument durch ein anderes ersetzt wird. War für mich schon des öfteren nützlich wenn ich in nem Skript einen bestimmten Teil umschreiben musste, der sich mehrmals wiederholt, erspart eine menge Arbeit.

Ayazz2011 
Fragesteller
 07.08.2017, 15:30

Vielen Dank, mit Notepad++ komme ich der Sache schon etwas näher :)

Wenn ich ein Wort im Text markiere, wird im gesamten Text dieses Wort überall automatisch markiert. Wenn ich aber mehrere Wörter bzw. einen kleinen Satz markiere, funktioniert dies leider nicht mehr. Gibt es dafür eine Lösung? 

0
DominikPrinz  07.08.2017, 17:21
@Ayazz2011
  1. Den entsprechenden Text markieren
  2. Strg+F
  3. Reiter "Hervorheben"
  4. "Alle suchen" klicken
  5. fertig

Jetzt sollte der Text überall im Dokument hervorgehoben sein.

Wenn du nicht mehr willst dass der Text hervorgehoben wird musst du unter "Alle suchen" auf "Zurücksetzen" klicken.

0

In Word ist das evtl. mit einem Skript möglich, sollten sixh die Worte auf eine begrenzte Anzahl begrenzen, kannst du das auch mit der Suchen Funktuon im Programm manuell machen.

Ayazz2011 
Fragesteller
 07.08.2017, 15:28

Vielen Dank erstmal. Wie genau würde ich denn so einen Skript durchführen? Ich möchte nicht im Text nach bestimmten Wörtern suchen, sondern dass ein Programm automatisch den Inhalt des Textes durchsucht und alle Wörter, die mehrfach vorkommen, markiert und hervorhebt.

0

wenn die bisherigen AW das treffen, was Du suchst, dann ok.

Willst Du aber wissen, dass es zB das Wort Hund ist, das nochmals im GesamtText unbekannterweise vorkommt oder das Wort Haus, das -ebenfalls unbekannterweise- noch weitere 4x vorkommt, musst Du (in Excel) anders (und viel umständlicher) vorgehen:

hänge zunächst die Texte aller Zellen aneinander mit der Formel:

=A1&A2&A3&...

Lässt sich für viele Zellen abkürzen mit Formel in B1: =A1&" " und in  B2

=B2&B2&" "

runterziehen über alle gefüllten Zeilen. Letzte Zelle B kopieren und zB in T1 ALS WERTE einfügen.

in T1 ="davorsetzen und ein " am Ende des Textes, so dass da die Formel

="Dein Text aller Zellen "   drinsteht.

Nun markierst Du die Zelle und noch mindestens eine Weitere (es müssen also mindestens 2 Zellen markiert sein!!) und gehst auf Suchen und Ersetzen (Strg+h). Option 'suchen in Formeln' , dann

suchen nach: da gibst du ein Leerzeichen ein und

ersetzen durch: "&Zeichen(10)&"

Du siehst zunächst nur, dass die Leerzeichen verschwunden sind, aber in der Zelle stehen jetzt stattdessen jede Menge "&Zeichen(10)&"

Jetzt markierst du wiederum zwei Zellen mindestens, kopierst das und fügst es als Wert wieder ein (egal, wo). Der Eintrag erscheint immer noch unverändert. Schaust Du aber in die Zelle, stehen jetzt alle Wörter untereinander.

Nun kopierst Du den Text in der Zelle (in der Zelle, bzw Bearbeitungszeile von Anfsang bis Ende und fügst ihn Auf die Zelle ein:

Jedes Wort steht nun in einer eigenen Zeile.

Der Rest ist Routine: Schreib in S2 =Zählenwenn(T:T;T1) und zieh das runter.

Alle Einfachnennungen liefern 1, alle Mehrfachnennungen die Anzahl der Mehrfachvorkommen. Danach kannst Du zB filtern.

In eine Zelle passen bis zu 3200 Zeichen. Nimmst du die durchschnittliche Länge eines Wortes zu 8 Zeichen an (geschätzt) und zählst die eingefügten Formelbestandteile dazu, so ergibt sich pro Wort ca 23 Zeichen, Du kannst so also Blöcke von ca,140 Wörtern behandeln.

Bei lämgeren Texten musst du die Ergebnisse untereinanderschreiben, die Auswertung bleibt die gleiche. (gleiche Formel, gleiche Filtertechnik).

Zugegebenermaßen umständlich, aber geht.

Mit weiteren Formeln kannst du dir auch anzeigen lassen, welche Wörter es sind, aber im Prinzip leistet das auch der Filter.

Viel Erfolg!

Iamiam  06.08.2017, 12:00

Habs gestern nicht mehr hingekriegt, aber es geht doch auch einfacher mit dieser Formel für jede Textzelle:

=WECHSELN(A1;" ";"
")

Den Umbruch zwischen den beiden letzten Gänsefüßchen erhältst Du mit der direkten Eingabe von Alt+Enter (oder du kopierst es hier)

Formelergebnis wieder kopieren, als Werte einfügen (Icon 123, das 2. des Kontextmenüs), den Zelltext von anfang bis Ende kopieren, auf die geschlossene Zelle draufkopieren:

Wörter stehen jetzt untereinander und Du kannst viele Wortlisten jetzt untereinander anhängen zur weiteren Auswertung mit Zählenwenn(Spalte;Wort)

Hat nicht nur den Vorteil, dass es schneller geht, sondern auch, dass Du soviele Wörter prozessieren kannst, wie schon in der Zelle stehen, da die Länge nicht anschwillt. Es wird ja nur Leer gegen Umbruch gewechselt.

0
Ayazz2011 
Fragesteller
 07.08.2017, 15:25
@Iamiam

Vielen Dank erstmal für Deine ausführliche Antwort.

Ich präzisiere mal meine Frage ein wenig.Ich möchte nicht im Text nach bestimmten Wörtern suchen, sondern dass ein Programm automatisch den Inhalt des Textes durchsucht und alle Wörter, die mehrfach vorkommen, markiert und hervorhebt.

An Excel habe ich auch gedacht, dort kann man ja über "Bedingte Formatierung" -> "Regeln zum Hervorheben von Zellen" -> "Doppelte Werte" alle mehrfach vorkommenden Einträge automatisch markieren lassen. Der Text liegt in PDF-Format vor. Wenn ich alles kopiere und in Excel einfüge, beinhalten ja die Zellen mehrere Wörter und das funktioniert dann leider nicht. Ist es denn möglich, beim Einfügen eines Textes in Excel festzulegen, dass jede Zelle genau ein Wort beinhalten soll? Dann würde das nämlich funktionieren denke ich.

0
Iamiam  08.08.2017, 00:16
@Ayazz2011

Hab ich mir halb gedacht.

Aber genau um das zu bewerkstelligen, habe ich diese AW verfasst. Wobei die Wechseln-Formel des Kommentars die besser brauchbare ist.

Inhalte lassen sich allerdings vollständig nur zellenweise vergleichen, weshalb ich ausserdem die Anleitung zum Aufspalten in Zellen ausgearbeitet habe.

Sollte genau das tun, was Du willst, allerdings nicht durch farbliches markieren, sondern durch die Zahl in der Zählenwenn-Spalte,

Den Originaltext, kannst du allerdings nur lesen, wenn Du die Zellen abwärts wortweise liest.

Die Zählenwenn-Spalte unterscheidet nicht gleich häufige Wörter, aber Du siehst das Wort ja links daneben - samt Zeilennummer auch im Filter.

Man könnte auch nur das erste Auftreten jeder Mehrfachnennung kennzeichnen und zusätzlich alle anderen über das Filter ausblenden - vorzugsweise in einer weiteren Spalte- aber das mache ich nur, wenn nötig. (erneut viel Beschreibungsarbeit, inhaltlich nicht allzu schwierig)

Um zur Textstelle zu kommen, wäre es auch möglich, die Buchstaben bis zum jeweiligen Auftreten zu zählen.

0
Iamiam  30.08.2017, 19:27
@Iamiam

um den Text wieder lesbar zu machen, kannst Du ihn nach diesem Schema wieder zusammenfügen, zB in Sp.G (Gesamt) und zB manuell satzweise:

ab Zeile 2: =G1&A2&" "

das runterziehen ergibt wieder linearen Text (nach jedem Satz eine Leerzeile einfügen)

0

Das kann so ziemlich jedes Programm. Wenn der Text online ist, kannst du den Browser nutzen. Ansonsten, je nach Format, ein Textverarbeitungsprogramm wie LibreOffice Writer oder Word oder ein Texteditor wie Notepad++.

Du musst meistens nur STRG+F drücken und das Wort eingeben.

Ich gehe jetzt davon aus, dass du die Wörter nur finden möchtest. Solltest du etwas anderes meinen, musst du jedoch präzisieren, in welchem Format der Text vorliegt und was genau du mit markieren meinst.

Ayazz2011 
Fragesteller
 07.08.2017, 15:14

vielen Dank erstmal für Deine Antwort.

Ich präzisiere mal meine Frage ein wenig. Der Text liegt im PDF-Format vor, welches ich aber auch kopiere und in eine Word-Datei einfüge. Ich möchte nicht im Text nach bestimmten Wörtern suchen, indem ich über STRG+F ein Wort eingebe sondern, dass ein Programm automatisch den Inhalt des Textes durchsucht und alle Wörter, die mehrfach vorkommen, markiert und hervorhebt.

0
tavkomann  07.08.2017, 16:03
@Ayazz2011

Ich weiß nicht, ob das mit Word möglich ist, da ich dieses nicht nutze. Aber mit dem kostenlosen Editor Notepad++ ist dies auf jeden Fall möglich:

  1. Notepad++ öffnen und Text einfügen
  2. STRG+F drücken
  3. Tab Hervorheben anklicken
  4. Bei Suchen nach folgendes eintippen:

    (\b\S+\b)(?=.*\1)

  5. Auf alle suchen klicken und das kleine Fenster schließen
  6. Nun sind alle mehrfach vorkommenden Wörter markiert
1
Ayazz2011 
Fragesteller
 07.08.2017, 21:28
@tavkomann

Vielen Dank! Das sieht schon mal sehr gut aus :)

Ich denke aber Du hast vergessen zu sagen, dass ich den Suchmodus auf "Reguläre Ausdrücke" stellen muss, sonst wird gar nichts markiert.

Allerdings werden auch einige Wörter markiert, die nur 1 mal vorkommen...

Hast Du dazu eine Idee?

0
tavkomann  07.08.2017, 21:34

Ok, vielleicht stand es bei mir schon auf Regex. Das angesprochene Problem konnte ich bei meinen Tests nicht beobachten, schaue ich mir morgen aber nochmal an.

1
tavkomann  08.08.2017, 17:22
@tavkomann

Leider ist das RegEx bei Notepad++ ein bisschen anders als das, welches ich sonst gewohnt bin. Normalerweise würde dies funktionieren:

(\b\S+\b)(?=.*(\1)\b)

Beim Online-Regex-Tester verhält er sich korrekt, doch Notepad++ will leider das letzte Wort von denen, die mehrfach vorkommen, nicht markieren.

Wenn also ein Wort 2x vorkommt, markiert er nur das erste. Wenn es fünfmal vorkommt, nur die ersten vier.

Vielleicht kriegt es hier jemand anders hin, dass das letzte Vorkommen auch markiert wird?

Ansonsten habe ich den Ausdruck dahingehend optimiert, dass er jetzt auch wirklich nur Wörter nutzt und keine Wortteile.

1
Iamiam  03.09.2017, 15:59
@tavkomann

Hab mir extra deshalb Notepad++ runtergeladen und es funktioniert!

Bin begeistert, DANKE auch von mir!

0

In Word einfügen, und oben auf Suche drücken. Dann das Wort eingeben dann steht da 1 von 361 z.b.

Ayazz2011 
Fragesteller
 07.08.2017, 15:31

Vielen Dank, aber ich präzisiere mal meine Frage ein wenig. Ich möchte nicht im Text nach bestimmten Wörtern suchen, indem ich über STRG+F ein Wort eingebe sondern, dass ein Programm automatisch den Inhalt des Textes durchsucht und alle Wörter, die mehrfach vorkommen, markiert und hervorhebt.

0