엑셀을 사용하다 보면 엑셀자료에서 특정문자가 몇 번 나오는지 개수를 세야 하는 경우가 있습니다. 아래 예를 들어 설명하겠지만 조직 인사자료를 성명, 성별, 직급, 주소 등으로 정리해 두고 필요에 따라 성별(남, 여) 인원이 몇 명인지, 지역별 구성원이 어떤지 특정문자가 포함된 값을 추출하고 싶을 때 활용할 수 있는 엑셀함수가 바로 COUNTIF 함수인데 COUNTIFS 함수를 이용한다면 보다 상세한 조건으로 원하는 특정문자가 포함된 값의 개수를 셀 수 있습니다.
엑셀 특정문자 개수 세기 함수(COUNTIF, COUNTIFS)
- countif(조건의 대상 범위,"조건")
- countifs(조건의 대상범위, "조건", 조건의대상 범위, "조건")
텍스트 값에서 다른 텍스트 값을 찾을 수 있고 대/소문자 구분된다.
COUNTIF 함수는 특정문자 개수 세기에 적합하고 FIND 함수는 단순히 찾을 문자가 어디에 위치하는지 결과를 반환하니 찾을 값이 포함되어 있는지 여부만 알고 싶다면 FIND 함수로도 충분하다.
아래 예제처럼 구성원이 남자인지 여부를 O, X로 표기하려면
- IFERROR(IF(FIND("남자",CONCATENATE(A4,B4,C4,D4))>0,"O","X"),"X")
위 수식은 특정열(COL)에 국한적으로 적용하는 것이 아니라 성명 ~ 주소까지 문자열을 조합하는 CONCATENATE함수를 이용해 해당줄(ROW)에 FIND함수로 특정문자 포함여부가 확인된다.
FIND함수로 찾을 문자가 포함된 경우 해당 위치를 반환함으로 IF함수로 ">0" 큰 경우 참(O) 아닌 경우 거짓(X) 값이 표기되도록 처리하고 FIERROR함수로 오류나 찾지 못해 반환되지 않는 경우 거젓(X)으로 표기되도록 했다.
FIND함수로 특정문자 포함여부, 해당위치는 가능하며 개수를 셀 수는 없다. 엑셀에서 특정문자 개수를 세려면 COUNTIF함수 또는 COUNTIFS함수를 자주 이용하는데 찾을 범위에 조건과 일치하는 개수를 셀 수 있다.
※ 특정문자 개수 세기 함수[텍스트 값에서 다른 텍스트 값을 찾습니다(대/소문자 구분)]
- countif(조건의 대상 범위, "조건")
- countifs(조건의 대상범위, "조건", 조건의대상 범위, "조건")
1. 엑셀예제파일에 적용된 수식처럼 성별, 직급을 대상으로 일치하는 문자가 포함된 개수를 확인할 수 있다.
- COUNTIF($A$4:$D$13,A17)
- 조건의 대상범위(찾을 영역)는 성별~주소까지 절대영역으로 선택하고 찾을 문자는 남자, 여자 왼쪽값을 가변적으로 선택하여 끌기하면 결과가 도출된다.
2. 온전한 문자열이 아닌 특정문자를 포함된 개수를 셀 경우는
- COUNTIF($A$4:$D$13,"*"&A25&"*")
- 대상범위 선택 후 찾을 값에 "*"&찾을 문자&"*"처럼 "*"로 앞뒤를 엮어주면 해당 문자가 포함된 개수를 셀 수 있다.
COUNTIFS함수를 활용하면 다중조건의 결과를 도출가능하다. FIND함수, COUNTIF함수 때론 COUNTIFS함수를 적절히 활용하고 IF함수나 IFERROR함수 등과 조합하여 정밀한 결과를 이끌어낼 수 있다.
잘 이해가 안 된다면 아래 엑셀에서 직접 해본 파일을 올려두었으니 참고하기 바란다.