Создание списка вхождений ключевых слов (Microsoft Excel)
У Мартина есть рабочий лист, который включает в столбец B довольно много ключевых слов.
Любая отдельная ячейка может иметь любое количество уникальных ключевых слов, каждое из которых разделено пробелом. Ему нужен способ создать список уникальных ключевых слов, а также количество строк, содержащих каждое ключевое слово.
Не существует простого способа создать список ключевых слов с помощью формул. Однако вы можете быстро создать такой список с помощью макроса. Ниже приведен пример, который выполнит работу очень быстро.
Sub KeywordList() Dim dTally As Dictionary Dim rSource As Range Dim c As Range Dim d As Variant Dim aKeys() As String Dim J As Integer Dim sTemp As String Set dTally = New Dictionary Set rSource = Selection For Each c In rSource ' Put all keywords in an array aKeys = Split(c, " ") For J = LBound(aKeys) To UBound(aKeys) sTemp = LCase(Trim(aKeys(J))) If Len(sTemp) > 0 Then If dTally.Exists(sTemp) Then ' Increment existing keyword dTally(sTemp) = dTally(sTemp) + 1 Else ' Add new keyword and count dTally.Add sTemp, 1 End If End If Next J Erase aKeys Next c ' Now have all the keywords in a dictionary object ' Add a new worksheet to store the list Worksheets.Add Cells(1, 1) = "Keyword" Cells(1, 2) = "Count" J = 1 For Each d In dTally.Keys J = J + 1 Cells(J, 1) = d Cells(J, 2) = dTally(d) Next d End Sub
Если макрос не работает в вашей системе, это может быть связано с тем, что Excel не распознает объект Dictionary. Если вы подозреваете, что это так, убедитесь, что вы включили библиотеку времени выполнения сценариев Microsoft в VBA. (Это можно сделать в редакторе Visual Basic, щелкнув Инструменты | Ссылки, указав библиотеку, установив флажок рядом с ней и, наконец, нажав кнопку ОК.)
Чтобы использовать макрос, просто выберите ячейки, содержащие ключевые слова, которые вы хотите подсчитать (в случае Мартина, это будут ячейки в столбце B), а затем запустите макрос. Он создает новый рабочий лист, в котором перечислены ключевые слова в столбце A, а в столбце B — сколько раз встречается каждое ключевое слово.
Как написано, макрос не обращает внимания на регистр ключевых слов; это означает, например, что «Апельсин» — это то же самое, что «Апельсин». Если вы хотите, чтобы список ключевых слов был чувствителен к регистру, вам просто нужно удалить оператор LCase; в макросе он используется только один раз.
Вы также должны знать, что ключевые слова перечислены на новом листе в том порядке, в котором они встречаются при выборе, сделанном перед запуском макроса. Попав в рабочий лист, вы можете легко отсортировать ключевые слова, если хотите.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (13499) применим к Microsoft Excel 2007, 2010, 2013 и 2016.