可変長の文字列のコレクション内の用語の頻度を計算しようとしています。コンテキストは、Accessデータベース内の記述です。 VBAでソリューションを維持することをお勧めします。区切り文字は ""(スペース)文字です。特別な文字は前もって削除されます。VBA:ワード周波数配列
私の最初のパスはちょっとした力を感じます。私はもっと効率的なアプローチが可能だと思う。ここで
は私が期待する結果を提供している単一の文字列のために現在やっているものです:
Private Sub Command0_Click()
Dim myCol As Collection
Dim myArray() As String
Dim strArray As Variant
Dim strDescr, strTerm, strMsg As String
Dim i, j As Integer
Set myCol = New Collection
strDescr = "This is just a test only a test test test"
myArray = Split(strDescr, " ")
For Each strArray In myArray
On Error Resume Next
myCol.Add strArray, CStr(strArray)
Next strArray
For i = 1 To myCol.Count
strTerm = myCol(i)
j = 0
For Each strArray In myArray
If strArray = strTerm Then j = j + 1
Next strArray
'placeholder
strMsg = strMsg & strTerm & " | " & j & Chr(10) & Chr(13)
Next i
'placeholder
'save results into a table
MsgBox strMsg
End Sub
サンプル結果:
次に、私はこれを拡張する必要があります配列とコレクションへの単語の追加を維持するために、レコードセットをステップ実行するアプローチ。レコードセットは30Kレコード、30-60文字の大文字にすることができます。
質問:
- 私はレコードセット内の各列の配列に追加するにはどうすればよいですか?
- レコードの数を増やすと、このアプローチは失敗しますか?
- より良いアプローチですか?
ありがとう!
Comintern、これは優れています。提案されたアプローチに感謝します! –