[엑셀] 한 셀 내에서 특정 문자 개수 구하기
한줄요약:
=(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")