엑셀 COUNTIF / COUNTIFS 함수 완벽 정리
조건에 맞는 데이터 개수 세기

특정 부서 인원 수 세기, 목표를 달성한 직원 수 파악, 특정 기간 내 주문 건수 집계 등 "조건에 해당하는 셀의 개수"를 세야 할 때 사용하는 함수가 COUNTIF와 COUNTIFS입니다. 이 글에서는 단일 조건의 COUNTIF부터 다중 조건의 COUNTIFS, 날짜·텍스트 와일드카드 조건까지 정리했습니다.

COUNTIF vs COUNTIFS

함수조건 수용도
COUNTIF1개단일 조건으로 개수 세기
COUNTIFS2개 이상여러 조건을 동시에 만족하는 개수 세기

기본 문법

=COUNTIF(range, criteria)

=COUNTIFS(range1, criteria1, [range2, criteria2], ...)
인수설명
range개수를 셀 범위
criteria조건 (숫자, 텍스트, 식. 텍스트·연산자는 큰따옴표로 감쌈)

STEP 1 — COUNTIF 기본: 특정 텍스트 개수 세기

1예제: 부서별 인원 수
A열 (이름)B열 (부서)
김철수인사팀
이영희재무팀
박민준인사팀
최지원영업팀
한소희인사팀
=COUNTIF(B2:B6, "인사팀")

결과: 3 (인사팀 직원이 3명)

조건을 셀 참조로 입력하면 셀 값이 바뀔 때 자동으로 갱신됩니다. =COUNTIF(B2:B6, E1)처럼 쓰면 E1 셀에 입력된 부서명으로 카운트합니다.

STEP 2 — 숫자 조건과 비교 연산자

180점 이상인 학생 수
=COUNTIF(C2:C100, ">=80")

비교 연산자를 포함한 조건은 반드시 큰따옴표로 감쌉니다.

2셀 참조와 비교 연산자 결합
=COUNTIF(C2:C100, ">="&E1)

기준 점수를 E1 셀에서 참조할 때는 ">="&E1처럼 & 기호로 연결합니다.

STEP 3 — COUNTIFS: 다중 조건

1인사팀이면서 점수가 70 이상인 직원 수
=COUNTIFS(B2:B100, "인사팀", C2:C100, ">=70")

두 조건이 모두 참인 행의 수를 셉니다. 범위 쌍(range1/criteria1, range2/criteria2)을 추가해 조건을 계속 늘릴 수 있습니다.

COUNTIFS의 각 범위는 크기가 같아야 합니다. range1이 B2:B100이면 range2도 동일한 행 수의 범위여야 합니다.

STEP 4 — 날짜 범위 조건

12026년 5월 주문 건수
=COUNTIFS(A2:A100, ">="&DATE(2026,5,1), A2:A100, "<"&DATE(2026,6,1))

날짜 범위는 두 조건(이상/미만)으로 감쌉니다. DATE 함수로 날짜를 만들고 &로 연결합니다.

STEP 5 — 와일드카드로 부분 일치

와일드카드의미예시
*글자 수 제한 없는 임의 문자"*팀" → 인사팀, 재무팀, 영업팀 모두 카운트
?한 글자 임의 문자"?철수" → 김철수, 이철수 카운트
~** 문자 그 자체별표(*)가 실제로 들어간 셀 카운트
=COUNTIF(B2:B100, "*팀")

"팀"으로 끝나는 부서의 직원 수를 셉니다.

자주 쓰는 COUNTIF 패턴 모음

목적수식
빈 셀 개수=COUNTIF(A2:A100, "")
비어있지 않은 셀 개수=COUNTIF(A2:A100, "<>")
특정 값과 다른 셀 개수=COUNTIF(A2:A100, "<>인사팀")
중복 값이 있는 셀 개수=COUNTIF(A:A, A2)-1 (A2와 같은 값의 수 -1)

자주 묻는 질문

COUNTIF와 COUNTA의 차이는?
COUNTA는 모든 비어있지 않은 셀의 수를 셉니다. 조건 없이 데이터가 있는 셀의 수를 세고 싶을 때는 COUNTA를 쓰는 것이 더 간단합니다. COUNTIF는 특정 조건에 맞는 셀만 셀 때 사용합니다.
OR 조건(A이거나 B)으로 개수를 세려면?
COUNTIFS는 AND(모두 만족) 조건입니다. OR 조건은 각 COUNTIF를 더합니다. =COUNTIF(B2:B100,"인사팀")+COUNTIF(B2:B100,"재무팀")처럼 사용하면 됩니다. 단, 두 조건을 동시에 만족하는 행이 없다는 전제 하에 사용하세요.
숫자인데 COUNTIF가 0을 반환합니다.
셀에 보기엔 숫자처럼 보여도 텍스트 형식으로 저장된 경우입니다. 데이터 탭 → 텍스트 나누기로 숫자 형식으로 변환하거나, VALUE() 함수로 숫자로 변환 후 다시 시도하세요.