본문 바로가기
엑셀

[엑셀] 특정 문자(대소문자)가 포함된 셀의 개수 세기 countif() / find()

by LightBlogger 2016. 9. 26.

countif()는 조건에 맞는 셀의 갯수를 셀 때 쓰는 함수이며


와일드카드 문자 (*) 의 사용이 가능하다.


예를 들어 다음 중 apple 과 일치하는 셀은 1개 이지만



apple이라는 단어가 들어간(*apple*) 셀은 2개이다.



다른 셀에 들어 있는 문자를 참조로 쓸 때에는


아래와 같이 "*"&&"*" 로 표기해 주어야 한다.



app이 들어간 셀은 모두 세 개이며



o가 들어간 셀은 두 개이다.



countif는 기본적으로 대소문자를 구별하지 않으므로


대소문자의 구분이 중요하다면 다른 방법을 사용해야 한다.


대소문자를 구별하는 find() 함수에서 시작해 보자.



find() 함수는 셀에서 특정 문자가 포함된 곳의 위치를 숫자로 반환해 준다.


같은 식을 B5에 적용하면



중간에 a가 있음에도 값을 찾을 수 없다고(#VALUE) 한다. 대문자가 아니기 때문이다.


find() 함수가 대/소문자를 구분하는 것은 알았으니 본격적으로 개수를 구해 보자.


다음과 같은 세 단계를 통해 구할 것이다.



여기서 지난 번 2016/09/05 - [엑셀] - [엑셀] 특정 조건에 맞는 셀들의 합 구하기 (sumif, 배열수식) 에서 잠시 본 배열 수식이 등장한다.


A가 있는 위치에 대한 배열 (1, 1, 1, #VALUE, #VALUE) 을 만들어 그것을 TRUE/FALSE로 바꾸고 다시 1/0 으로 바꾸어 더할 것이다.


수식은 다음과 같다.


=SUM(--(ISNUMBER(FIND("A",B3:B7))))

배열수식이므로 Ctrl + Shift + Enter를 눌러 주어야 한다.



FIND("A",B3:B7)

: A의 위치를 숫자로 반환하는 부분. 실은 위치가 중요하지는 않다. 숫자인가 에러(#VALUE)인가가 중요.

: 여기까지 {1, 1, 1, #VALUE, #VALUE} 의 배열이 만들어진다.


ISNUMBER()

: 그 결과를 TRUE / FALSE 로 바꾸는 부분.

: 여기까지 {TRUE, TRUE, TRUE, FALSE, FALSE} 의 배열이 만들어진다.


--()

: TURE / FALSE 를 1 / 0 으로 바꾸는 부분

: 여기까지 {1, 1, 1, 0, 0} 의 배열이 만들어진다.


sum() 

: 그 배열을 더하는 부분.



이상과 같이 대 / 소문자를 구분하여 포함된 셀의 개수를 구할 수 있다.




반응형

댓글