Я пытаюсь вычислить частоту слагаемых в наборе строк переменной длины. Контекст - это описание в базе данных Access. Предпочитаете сохранить решение в VBA. Разделителем является символ «" (пробел). Специальные символы будут удалены заранее.VBA: Word Frequency Array
Мой первый проход чувствует себя немного грубой силой; Я подозреваю, что возможен гораздо более эффективный подход.
Вот что я делаю в данный момент для одной строки, которая обеспечивает результат я ожидаю:
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
Пример Результат:
Далее, мне нужно, чтобы расширить это подход к шагу через набор записей, чтобы добавить слова в массив и коллекцию. Записи могут быть большими, 30 тыс. Записей, descr - 30-60 символов.
Вопросы:
- Как добавить в массив для каждой строки в наборе записей?
- Будет ли этот подход терпеть неудачу, поскольку я масштабирую количество записей?
- Лучший подход?
Спасибо!
Коминтерн, это отлично. Спасибо за предложенный подход! –