엑셀 셀에서 특정 문자나 단어 개수 세는 방법(함수, 매크로)

2023. 6. 18. 21:32 / 서기랑

 엑셀의 함수 중에는 셀에서 사용한 특정한 문자나 단어 등의 개수를 확인하는 함수는 없다.

 하지만 함수를 잘 조합하면 이와 비슷한 효과를 낼 수 있으며 셀에 사용한 문자나 단의 개수를 자주 확인한다면 간단한 vba 매크로를 만들어 사용하는 것도 좋다.

목차 (Contents)

     

    엑셀 특정 문자, 단어 개수 세기

    1. 함수 수식을 이용한 방법.

     SUMPRODUCT함수와 ISNUMBER함수, SEARCH함수를 아래와 같이 사용하면 셀 안에 사용한 특정 문자나 단어의 개수를 세는 것이 가능하다.

     (수식 뒷부분의 나누는 부분은 LEN 함수 대신 단어의 수를 직접 입력해도 된다.)

    =(LEN()-LEN(SUBSTITUTE(, "문자 or 단어", "")))/LEN("문자 or 단어")

     

     예를 들어 A1부터 A10까지의 셀 범위 안에서 "서기랑"이라는 단어가 몇 번 나왔는지 개수를 세고 싶다면 아래와 같이 사용이 가능하다.

    =(LEN(A1)-LEN(SUBSTITUTE(A1, "서기랑", "")))/LEN("서기랑")
    =(LEN(A1)-LEN(SUBSTITUTE(A1, "서기랑", "")))/3

    함수 조합으로 단어 개수 세기

     해당 함수 수식을 간단하게 설명하면 셀 내용의 길이[LEN(A1)]에서 SUBSTITUTE 함수로 단어를 삭제 내용의 길이(LEN(SUBSTITUTE(셀, "단어", ""))]를 빼고, 그 값을 단어의 수(LEN("단어")로 나누어서 개수를 찾는 것이다.

     

    2. VBA 매크로를 이용한 방법.

     문자나 단어의 개수를 찾는 경우가 많거나 단일 셀이 아닌 범위 셀에서 찾아야 한다면 VBA 매크로를 만들어서 사용하는 것이 더 편할 수 있다.

     

     엑셀에서 [Alt + F11]을 눌러 내크로를 실행 한 뒤 [삽입 - 모듈]을 클릭하고 아래의 코드를 복사하여 붙여 넣자.

    Function CountWord(target As Range, word As String) As Long
     Dim cell As Range
     Dim count As Long
     count = 0

     For Each cell In target
      If Not IsEmpty(cell) Then
       count = count + UBound(Split(cell.Value, word))
      End If
     Next cell
        
     CountWord = count
    End Function

    단어 세기 매크로

     코드를 그대로 붙여 넣었다면 CountWord라는 사용자 정의 함수를 작성한 것이다.

     엑셀에서 아래와 같은 형식으로 함수를 사용해 보면 지정한 셀 범위에서 특정 문자나 단어의 개수를 확인할 수 있을 것이다.

    =CountWord(셀 범위, "단어")
    =CountWord(A1:A10, "서기랑")

    단어 개수 세기 매크로

     

    그 외 내용

     개수를 세는 일이 자주 없다면 함수를 조합한 수식만으로도 충분하다.

     하지만 개수를 세는 일이 자주 있다면 VBA 매크로를 만들어 사용하는 것이 훨씬 효율적이며 작업도 편해질 것이다.