计算Excel字符串中单词的频率

114*_*114 4 excel vba excel-vba

假设我有一个任意长度的列,其中每个单元格包含一串文本.有没有办法确定列中最常出现的单词(事先不知道要检查哪些单词),然后在两列表中将这些单词及其频率排序?VBA最适合这项任务吗?

例如,单元格可能包含字符串"This is a string,此字符串中的字符数> 0." (有意的错误)

Gar*_*ent 11

选择A列的一部分并运行这个小宏(该表将放在cols中.B&C :

Sub Ftable()
    Dim BigString As String, I As Long, J As Long, K As Long
    BigString = ""
Run Code Online (Sandbox Code Playgroud)

'添加代码以将"全部"和"全部"加起来"添加代码以分开"." "!" 从它们之前的单词开始,以便在单词中计算单词'.例如:"全部".不应该报告为1"全部".但是"全部"被添加到"所有"单词的总数中.'你会发布这个新代码吗?

    For Each r In Selection 
          BigString = BigString & " " & r.Value
    Next r
    BigString = Trim(BigString)
    ary = Split(BigString, " ")
    Dim cl As Collection
    Set cl = New Collection
    For Each a In ary
        On Error Resume Next
        cl.Add a, CStr(a)
    Next a

    For I = 1 To cl.Count
        v = cl(I)
        Cells(I, "B").Value = v
        J = 0
        For Each a In ary
            If a = v Then J = J + 1
        Next a
        Cells(I, "C") = J
    Next I

End Sub
Run Code Online (Sandbox Code Playgroud)


Jer*_*ino 5

鉴于这种:

在此处输入图片说明

我将使用数据透视表获取此信息:

在此处输入图片说明

最好的部分是,如果我获得更多,就很容易获得前5名,10名,等等。而且它总是会得到唯一的索引。从那里,您可以进行各种编辑和计算。:)