Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Wörter zählen

Wörter zählen
08.04.2017 13:08:53
Manuel
Hallo liebes Forum,
ich hab hier ein VBA-Skirpt mit dem Wörter im markierten Bereich zählen kann. Diesen verstehe ich aber nicht richtig. Kann mir jemand das gut erklären.
Hier kommt der Code:

Sub WorteZählen()
Dim Zelle As Range
Dim Bereich As Range
Dim s As String
Dim i As Integer
Sheets("Tabelle1").Activate
Set Bereich= Range("A1:A4")
For Each Zelle In Bereich
s= Trim(Zelle.Text)
Do While Instr(s, " ") >0
i= i+1
s= Trim(Right(s, Len(s)- Instr(s, " ")))
Loop
i= i+1
Next t
MsgBox "Wörter im Zielbereich:" &i
End Sub

So was macht hier nun Trim und Instr? Wozu brauch ich Len(s).
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wörter zählen
08.04.2017 13:26:02
Hajo_Zi
den Fehler bei Next habe ich beseitigt.
Option Explicit
Sub WorteZählen()
Dim Zelle As Range
Dim Bereich As Range
Dim s As String
Dim i As Integer
Sheets("Tabelle1").Activate
Set Bereich = Range("A1:A4")
' Schleidfe über den Bereich
For Each Zelle In Bereich
' schreibe die aktuelle Zelle auf die Variable
s = Trim(Zelle.Text)
' Schreibe üvber die Zelle solange eine Leerstele vorhanden
Do While InStr(s, " ") > 0
' falls Leerstelle vorhanden erhöhe die Wortanzahl um 1
i = i + 1
'Trenne das letzte Wort ab und es geh bei Do weiter
s = Trim(Right(s, Len(s) - InStr(s, " ")))
Loop
' erhöhe Wortanzahl um 1
i = i + 1
' nächste Zelle
Next Zelle
MsgBox "Wörter im Zielbereich:" & i
End Sub


Anzeige
AW: Wörter zählen
08.04.2017 14:14:41
Manuel
erstmal danke für die Erklärung. Ich Checks aber immer noch nicht.
Was macht Trim? Es entfernt alle Leerzeichen und die variable s hat dann den Wert 4 oder wie?
Dann Instr. Was für einen Wert liefert mir die Funktion? und dann nochmal das s? Wozu? Das Wort ganz rechts wir abgetrennt, aber wozu dann Len(s) - Instr(s, " ").
Anzeige
AW: Wörter zählen
08.04.2017 14:16:51
Hajo_Zi

Trim entfernt Leerstellen am Ende und Anfang, Instr sucht die Position von " ", falls 

Gruß Hajo
AW: Wörter zählen
08.04.2017 14:24:55
Manuel
hey hajo,
ich glaube das funktioniert so:
mit s= trim(zelle.text) ermittle ich die Anzahl aller Textzeichen inklusive Leerzeichen.
dann such die Leerzeichen mit Instr und ihre Position. Nun entferne ich nochmal mit Trim von der Zelle rechts ausgehend bis zum Leerzeichen das Wort. Schleife beginnt dann von vorne.
Anzeige
AW: Wörter zählen
08.04.2017 15:36:38
Daniel
Hi
mit Instr sucht du immer die Postion des nächsten Leerzeichens im Text.
das Right(...) schneidet dann die Zeichen vor dem Leerzeichen ab und das Trim löscht dann das leerzeichen am Anfang.
Das wiederholst du so lange, bis keine Leerzeichen mehr im Text drin ist.
so wie du das machst, ist es ziemlich aufwendig.
es gibt einfachere Methoden, um die Leerzeichen und damit die Wörter zu zählen:
 For Each Zelle In Bereich
s= Worksheetfunction.Trim(Zelle.Text)
if len(s) > 0 then i = i + len(s) - len(Replace(s, " ", "")) + 1
next
das Worksheetfunction.Trim entfernt alle Leerzeichen am Anfang und Ende, sowie alle mehrfach Leerzeichen im Text, so dass zwischen jedem Wort nur ein Leerzeichen steht.
Gruß Daniel
Anzeige
AW: Wörter zählen
08.04.2017 17:19:02
Manuel
Hallo,
jo habe es nun verstanden danke!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Wörter in Excel zählen leicht gemacht


Schritt-für-Schritt-Anleitung

Um die Anzahl eines Wortes in Excel zu zählen, kannst Du ein einfaches VBA-Skript verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und dann auf Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Sub WorteZählen()
       Dim Zelle As Range
       Dim Bereich As Range
       Dim s As String
       Dim i As Integer
       Sheets("Tabelle1").Activate
       Set Bereich = Range("A1:A4") ' Definiere den Bereich
    
       For Each Zelle In Bereich
           s = WorksheetFunction.Trim(Zelle.Text) ' Entferne überflüssige Leerzeichen
           If Len(s) > 0 Then
               i = i + Len(s) - Len(Replace(s, " ", "")) + 1 ' Zähle die Wörter
           End If
       Next Zelle
       MsgBox "Wörter im Zielbereich: " & i
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro über Entwicklertools > Makros aus. Wähle WorteZählen und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler: "Typenkonflikt"

    • Stelle sicher, dass der Bereich, den Du zählst, nur Text enthält. Leere Zellen oder falsche Datentypen können diesen Fehler verursachen.
  • Fehler: "Betrifft nicht den gesamten Bereich"

    • Überprüfe, ob der angegebene Bereich korrekt ist. Du kannst den Bereich anpassen, um sicherzustellen, dass alle Zellen berücksichtigt werden.

Alternative Methoden

Wenn Du keine VBA-Makros verwenden möchtest, kannst Du die Häufigkeit eines Wortes in Excel auch mit Formeln zählen. Hier ist eine einfache Formel:

=SUMPRODUCT((LEN(A1:A4)-LEN(SUBSTITUTE(A1:A4, "deinWort", "")))/LEN("deinWort"))

Diese Formel zählt, wie oft ein bestimmtes Wort in einem definierten Bereich vorkommt. Ersetze deinWort durch das Wort, das Du suchen möchtest.


Praktische Beispiele

Angenommen, Du hast die folgende Liste in den Zellen A1 bis A4:

  • "Das ist ein Test"
  • "Ein weiterer Test"
  • "Der Test ist abgeschlossen"
  • "Dies ist ein weiterer Test"

Um die Anzahl der Wörter in diesem Bereich zu zählen, kannst Du das oben beschriebene VBA-Skript verwenden, um die Gesamtanzahl der Wörter zu ermitteln.


Tipps für Profis

  • Verwende WorksheetFunction.Trim, um überflüssige Leerzeichen in den Zellen zu entfernen, bevor Du mit dem Zählen beginnst. Das verbessert die Genauigkeit der Zählung.
  • Experimentiere mit verschiedenen Bereichen und Formeln, um die Häufigkeit von Wörtern zu zählen und herauszufinden, wie sie in Deinen Daten verteilt sind.

FAQ: Häufige Fragen

1. Wie kann ich die Anzahl der Wörter in einem großen Text zählen? Du kannst den gleichen VBA-Code verwenden, um die Anzahl der Wörter in einem größeren Bereich zu zählen. Achte darauf, den Bereich entsprechend anzupassen.

2. Funktioniert das Zählen von Wörtern in Excel auch für leere Zellen? Ja, der Code ignoriert leere Zellen, aber es ist wichtig, sicherzustellen, dass Du die richtigen Bedingungen in Deiner Formel oder Deinem VBA-Code setzt.

3. Kann ich die Anzahl der Wörter auch in Word zählen? Ja, in Word gibt es eine eingebaute Funktion, um die Anzahl der Wörter im Dokument anzuzeigen. Du findest diese unter Überprüfen > Wörter zählen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige