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

Häufigkeit von Worten in Zelle berechnen/anzeigen

Häufigkeit von Worten in Zelle berechnen/anzeigen
21.11.2018 15:51:04
Worten
Hallo zusammen,
ich würde gerne den Inhalt einer einzelnen Zelle lesen & alle IDs die sich dort befinden & doppelt vorkommen in eine ID zusammenfassen und die Häufigkeit in Klammern dahinter schreiben.
Inhalt in Zelle L3: (später sollen noch mehr Zeilen folgen im Sheet, aber an unterschiedlichen Stellen)
SA-SW SA-SB SA-ST SABT-12 SA-DG EL-HI SA-SW EL-HI SABT-12
Dabei sind die einzelen IDs durch Leerzeichen getrennt
Soll dann wie folgt aussehen: (in Zelle K3)
SA-SW(2) SA-SB(1) SA-ST(1) SABT-12(2) SA-DG(1) EL-HI(2)
Das ganze habe ich schon mit CountIf (ZählenWenn) probiert, funktioniert aber nicht, da ich nicht weiß wie ich die Häufigkeit in der selben Zeile wie die IDs in Klammern anzeigen lassen kann.
Mein Ansatz bisher (in anderem Makro schoneinmal erfolgreich verwendet): (gibt jedoch einen Fehler aus, da das Array, die Leerzeichen nicht erkennt.:

Sub zaehlenHaeufigkeit()
Set Bereich = Sheets("Details").Range("L3")
arr = Bereich.Value
Set objDict = CreateObject("Scripting.Dictionary")
For Each f In arr
objDict(f) = objDict(f) + 1
Next
For lngI = 1 To UBound(arr)
ID = arr(lngI, 1)
arr(lngI, 1) = objDict(ID)
objDict(ID) = ""
Next
Bereich.Offset(0, 1).Value = arr
End Sub


Hat vielleicht jmd eine Idee?
Liebe Grüße

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

Betreff
Datum
Anwender
Anzeige
und was ist mit Feedback...
21.11.2018 16:52:57
Werner
Hallo Anna,
...auf Hilfe in den anderen Beiträgen?
Gruß Werner
AW: und was ist mit Feedback...
21.11.2018 17:12:44
Anna
Das war wohl jetzt 2x zu oft abgeschickt 😃
AW: Häufigkeit von Worten in Zelle berechnen/anzeigen
21.11.2018 17:10:55
Worten
Hallo Bernd,
ich bemühe mich eigentlich immer zu antworten & mich zu bedanken. Siehe auch heute... Ich hoffe ich hab dich nicht Mal vergessen.
War jedenfalls keine Absicht.
Liebe Grüße
AW: Häufigkeit von Worten in Zelle berechnen/anzeigen
21.11.2018 17:10:58
Worten
Hallo Bernd,
ich bemühe mich eigentlich immer zu antworten & mich zu bedanken. Siehe auch heute... Ich hoffe ich hab dich nicht Mal vergessen.
War jedenfalls keine Absicht.
Liebe Grüße
AW: Häufigkeit von Worten in Zelle berechnen/anzeigen
21.11.2018 17:10:58
Worten
Hallo Bernd,
ich bemühe mich eigentlich immer zu antworten & mich zu bedanken. Siehe auch heute... Ich hoffe ich hab dich nicht Mal vergessen.
War jedenfalls keine Absicht.
Liebe Grüße
Anzeige
AW: Häufigkeit von Worten in Zelle berechnen/anzeigen
21.11.2018 17:38:17
Worten
Hallo Anna,
mein Name ist Werner und nicht Bernd - aber egal.
Dann gib mal Anna ins Feld Listensuchen ein und klick auf den Button Listnsuche. Schau dir deine Beiträge mal an.
Gruß Werner
AW: Häufigkeit von Worten in Zelle berechnen
21.11.2018 19:01:23
Worten
Hallo Werner,
jetzt sehe ich deine Antwort auf meinen Beitrag. Vielen Dank für deine Antwort damals. Meine Antwort wurde damals wohl nicht gesendet oder ich habe es wirklich übersehen. Ansonsten sehe ich nur Beiträge bei denen ich mein positives Feedback & meinen Dank zurückgelassen habe. Nicht immer im Betreff sondern direkt als AW auf den jeweiligen Beitrag, aber das dürfte nicht wirklich erheblich sein, oder? ;)
gibt es einen speziellen Beitrag von mir auf den du eingehen möchtest?
Btw. es gibt auch hier Beiträge in der Suche die nicht von mir sind (meinen Namen gibt es mehrmals) & ist wohl mit einer anderen Emailadresse möglich.
Liebe Grüße (hoffe ich konnte das jetzt aus der Welt schaffen)
Anzeige
AW: Häufigkeit von Worten in Zelle berechnen/anz
21.11.2018 19:47:04
Worten
Hi
in deinem Fall würde ich mir das als Funktion schreiben (Code kommt so in ein allgemeines Modul)
Function zaehlenHaeufigkeit(txt As String) As String
Dim ID, K
Dim objDict As Object
Dim Erg As String
Set objDict = CreateObject("Scripting.Dictionary")
For Each ID In Split(txt, " ")
objDict(ID) = objDict(ID) + 1
Next
Erg = ""
For Each K In objDict.keys
Erg = Erg & " " & K & "(" & objDict(K) & ")"
Next
zaehlenHaeufigkeit = Mid(Erg, 2)
End Function
dann kannst du entweder diese Funktion wie eine normale Excelfunktion direkt in eine Zelle schreiben:
M3: =zaehlenHaeufigkeit(L3)
oder du kannst die Funktion auch in einem Makro verwenden:
Sub Test()
With Sheets("Detail").Range("L3")
.Offset(0, 1).Value = zaehlenHaeufigkeit(.value)
end with
end sub
Gruß Daniel
Anzeige
Dankeschön
22.11.2018 12:42:58
Anna
Hallo Daniel,
vielen Dank für deine Hilfe. in meinem Fall verwende ich die Funktion indem ich sie direkt in die Zelle schreibe :)
Liebe Grüße

344 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige