Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1352to1356
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wörter zählen

Wörter zählen
11.03.2014 10:55:36
Ingo
Moin zusammen,
ich habe eine riesige Tabelle, in deren Zellen jede Menge Text steht (meist immer so 20 Wörter). Ich möchte jetzt eine Art Auflistung haben, welches Wort wie oft vorkommt.
Formel ZÄHLENWENN(Bereich;"Text") hilft mir ja nur, wenn ich das Wort, welches ich zählen möchte angebe. Ich möchte aber eher, dass Excel selbst schaut, welches Wort am häufigsten vorkommt. Als Ergebnis hätte ich gerne sowas wie:

Wort Anzahl

Text1 1965
Text2 1723
Text3 1100
...
Ist sowas überhaupt möglich?
Meine Überlegungen gingen sonst in die Richtung, die Zelle mit dem Text auf mehrere Zellen zu trennen (ein Wort pro Zelle) und mir dann über Zählen-Funktionen weiterzuhelfen. Vlt. gehts aber ja auch einfacher.
Vielen Dank schon mal.

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wörter zählen
11.03.2014 11:29:02
Rudi
Hallo,
teste mal:
Sub aaaa()
Dim arr, i As Long, j As Long, objCount As Object, arrTmp, k As Long
arr = ActiveSheet.UsedRange
Set objCount = CreateObject("Scripting.dictionary")
For i = 1 To UBound(arr)
For j = 1 To UBound(arr, 2)
If arr(i, j)  "" Then
arrTmp = Split(arr(i, j), " ")
For k = LBound(arrTmp) To UBound(arrTmp)
objCount(arrTmp(k)) = objCount(arrTmp(k)) + 1
Next
End If
Next
Next
With Worksheets.Add
.Cells(1, 1).Resize(objCount.Count) = WorksheetFunction.Transpose(objCount.keys)
.Cells(1, 2).Resize(objCount.Count) = WorksheetFunction.Transpose(objCount.items)
End With
End Sub

Gruß
Rudi

Anzeige
AW: Wörter zählen
11.03.2014 11:54:55
Ingo
Moin,
das funktioniert auch. Besten Dank. Ihr seid die Besten.

AW: Wörter zählen
11.03.2014 11:58:41
Ingo
Moin,
das funktioniert auch. Besten Dank. Ihr seid die Besten.

AW: Wörter zählen
11.03.2014 12:02:23
Ingo
Obwohl hm,
hab das Makro erstmal nur auf einen Teil getestet, da gehts.
Beim ganzen Tabellenblatt kommt die Meldung "Typen unverträglich".
Woran kann das liegen?

AW: Wörter zählen
11.03.2014 12:19:51
Rudi
Hallo,
Woran kann das liegen?
an mehr als 65535 Wörtern. Dann versagt Transpose.
Sub aaaa()
Dim arr, i As Long, j As Long, objCount As Object, arrTmp, k As Long
Dim oKey
arr = ActiveSheet.UsedRange
Set objCount = CreateObject("Scripting.dictionary")
For i = 1 To UBound(arr)
For j = 1 To UBound(arr, 2)
If arr(i, j)  "" Then
arrTmp = Split(arr(i, j), " ")
For k = LBound(arrTmp) To UBound(arrTmp)
objCount(arrTmp(k)) = objCount(arrTmp(k)) + 1
Next
End If
Next
Next
i = 0
ReDim arr(1 To objCount.Count, 1 To 2)
For Each oKey In objCount
i = i + 1
arr(i, 1) = oKey
arr(i, 2) = objCount(oKey)
Next
With Worksheets.Add
.Cells(1, 1).Resize(objCount.Count, 2) = arr
End With
End Sub

Gruß
Rudi

Anzeige
AW: Wörter zählen
11.03.2014 12:22:30
Ingo
Ja, der Wahnsinn.
Innerhalb von 2 Sekunden das Ergebnis. Einfach Super. Besten Dank!

AW: Wörter zählen
11.03.2014 11:29:18
Klaus
Hi Ingo,
mal ein Ansatz:
Sub GetWords()
Const OutTable As String = "Tabelle1"
Const InTable As String = "Tabelle2"
Const myCol As Long = 2
Dim myRow As Long
Dim myRng As Range
Dim myArr As Variant
Dim i As Long
Dim lRow As Long
myRow = 4
lRow = myRow
With Sheets(OutTable)
'alle Wörter holen
For Each myRng In Sheets(InTable).UsedRange
If Not myRng.Value = "" Then
myArr = Split(myRng.Value, " ")
For i = 0 To UBound(myArr)
.Cells(lRow, myCol).Value = myArr(i)
lRow = lRow + 1
Next i
End If
Next myRng
'Wörter zählen
With .Range(.Cells(myRow, myCol + 1), .Cells(lRow - 1, myCol + 1))
.FormulaR1C1 = "=COUNTIF(C[-1],RC[-1])"
.Value = .Value
End With
'doppelte entfernen
.Range(.Cells(myRow, myCol), .Cells(lRow, myCol + 1)).RemoveDuplicates Columns:=Array(1, 2), _
Header:=xlNo
End With
End Sub
Erstellt in TABELLE1 eine Liste der Wörter aus TABELLE2 inklusive Zählung. Wie du siehst, möglich ist vieles.
Grüße,
Klaus M.vdT.

Anzeige
AW: Wörter zählen
11.03.2014 11:54:24
Ingo
Moin,
das funktioniert gut. Super. Danke!

Danke für die Rü! aber ...
11.03.2014 11:58:19
Klaus
... ich nehme an, Rudi's Lösung ist gerade bei großen Tabellen deutlich schneller als meine, da sie auf den aufwendigen Umweg über ein Tabellenblatt mit Formeln verzichtet.
Grüße,
Klaus M.vdT.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige