Martyn에는 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 개체를 인식하지 못하기 때문일 수 있습니다. 이 경우가 의심되는 경우 VBA 내에서 Microsoft Scripting Runtime 라이브러리를 활성화해야합니다. (Visual Basic Editor에서 도구 | 참조를 클릭하고 라이브러리를 찾은 다음 옆에있는 확인란을 클릭하고 마지막으로 확인을 클릭하여이 작업을 수행합니다.)

매크로를 사용하려면 집계 할 키워드가 포함 된 셀 (Martyn의 경우 B 열의 셀)을 선택한 다음 매크로를 실행하면됩니다. A 열의 키워드와 B 열의 각 키워드 발생 횟수를 나열하는 새 워크 시트를 만듭니다.

쓰여진대로 매크로는 키워드의 대소 문자에주의를 기울이지 않습니다. 예를 들어 “Orange”는 “orange”와 동일합니다. 키워드 목록에서 대소 문자를 구분하려면 LCase 문을 제거하기 만하면됩니다. 매크로에서 한 번만 사용됩니다.

또한 키워드는 매크로를 실행하기 전에 선택한 순서대로 새 워크 시트에 나열됩니다. 워크 시트에서 원하는 경우 키워드를 쉽게 정렬 할 수 있습니다.

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (13499)은 Microsoft Excel 2007, 2010, 2013 및 2016에 적용됩니다.