본문 바로가기
엑셀

[엑셀] 한 셀 내에서 특정 문자 개수 구하기

by LightBlogger 2017. 8. 23.

한줄요약:


=(LEN(셀)-LEN(SUBSTITUTE(셀,"찾는문자","")))/LEN("찾는문자")



COUNTIF()는 기본적으로 '셀의 개수'를 세는 함수이므로


한 셀 내에 반복되는 특정 문자열의 개수를 셀 수는 없다.


한 셀 내에서 특정 문자열의 개수를 세고 싶다면 의외로(?) SUBSTITUTE()함수를 사용해야한다.


다음과 같은 자료가 있다고 하자.



기본 전략은 간단하다. 


2016/12/29 - [엑셀] - [엑셀] 오른쪽에서 특정 문자까지 추출하기와 마찬가지로


찾으려는 문자를 공백으로 바꾼 후 원래 문자의 길이와 차이를 보는 것이다.


예를 들어 위의 자료에서 "E"를 찾으려면



이와 같이 "E"를 공백으로 바꾼 후에


LEN() 함수를 이용하여 다음과 같이 길이를 구한다.



"E"가 하나씩 사라졌으므로, 저 문장 길이의 차이가 "E"의 개수라는 것을 알 수 있다.


여기까지를 수식으로 한 번에 쓰면 다음과 같다.


=LEN(A2)-LEN(SUBSTITUTE(A2,"E",""))






만일 찾아야 할 문자열이 2글자 이상이라면 하나 더 신경써 주어야 할 것이 있다.


예를 들어 다음과 같은 문장에서 "pe"를 제거하면 이렇게 되겠다.


(Substitute는 대소문자를 구별하는 것에 주의한다.)



여기서 첫 줄의 (처음 문장 길이) - (나중 문장 길이) 의 결과는 8인데, 


이는 찾는 문자열이 8개 있다는 뜻이 아니라, 8칸이 줄어들었다는 의미이다.


즉 "pe"가 4번 등장해서 총 8칸이 줄어든 것일 테다.



그러므로 최종적으로는 (처음 문장 길이) - (나중 문장 길이) 의 결과를


찾는 문자열의 길이로 나누어 주어야 한다.


여기서는 "pe"이므로 2로 나누어 주면 되겠다.



하여 완성된 수식은 다음과 같다.


=(LEN(A2)-LEN(SUBSTITUTE(A2,"pe","")))/LEN("pe")










반응형

댓글