VLOOKUP 다음은 이거다
엑셀 함수를 처음 익힐 때 대부분 VLOOKUP에서 멈춘다. 값 하나 끌어오는 건 되는데, 정작 실무에서 제일 자주 하는 일은 따로 있다. “이 조건에 맞는 것만 더해줘”, “이 조건에 맞는 게 몇 개야?” 같은 집계다.
월말에 거래처별 매출 합계 내고, 부서별 인원 세고, 특정 상태인 건만 골라 합산하고. 이걸 필터 걸어서 눈으로 더하고 있다면 시간을 버리는 셈이다. SUMIF 계열 네 개만 손에 익으면 그 작업이 수식 한 줄로 끝난다.
조건이 하나면 SUMIF·COUNTIF, 조건이 둘 이상이면 끝에 S가 붙은 SUMIFS·COUNTIFS다. 이름은 비슷하지만 인수 순서가 미묘하게 달라서, 바로 거기서 다들 헷갈린다. 그 차이부터 짚고 가자. (VLOOKUP·XLOOKUP·INDEX/MATCH 비교를 먼저 봐두면 함수 인수 읽는 감이 더 빨리 잡힌다.)
네 함수, 한 표로
| 함수 | 하는 일 | 인수 순서 | 조건 개수 |
|---|---|---|---|
| SUMIF | 조건 맞는 값 합계 | (조건범위, 조건, 합계범위) | 1개 |
| SUMIFS | 조건 맞는 값 합계 | (합계범위, 조건범위1, 조건1, …) | 여러 개 |
| COUNTIF | 조건 맞는 셀 개수 | (범위, 조건) | 1개 |
| COUNTIFS | 조건 맞는 셀 개수 | (조건범위1, 조건1, …) | 여러 개 |
여기서 함정 하나. SUMIF는 합계범위가 맨 뒤, SUMIFS는 합계범위가 맨 앞이다. S 하나 붙었다고 순서가 거꾸로 가는 셈인데, 이걸 모르고 SUMIF 쓰던 버릇대로 SUMIFS를 쓰면 결과가 엉뚱하게 나온다. 실무에서 가장 흔한 실수가 정확히 이거다.
SUMIF — 조건 하나로 합산
거래처 목록이 A열, 금액이 B열에 있다고 하자. “강남상사” 매출만 더하려면 이렇게 쓴다.
=SUMIF(A2:A100, "강남상사", B2:B100)조건을 셀에 적어두고 참조하는 게 실무에선 훨씬 낫다. D2에 거래처명을 넣어두면 =SUMIF(A2:A100, D2, B2:B100) 식으로 쓰고, D2만 바꿔가며 거래처별로 재활용할 수 있다.
자주 놓치는 부분 하나. 합계범위(세 번째 인수)를 빼먹으면 엑셀은 첫 번째 범위(조건범위)를 그대로 더한다. 그러니 =SUMIF(B2:B100, ">=100000")처럼 “10만 원 이상인 금액만 합산” 같은 건 합계범위 없이도 동작한다. 조건을 검사하는 열과 더하는 열이 같을 때 쓰는 방식이다.
SUMIFS — 조건 두 개 이상
“강남상사인데, 5월 건만” 처럼 조건이 둘 이상이면 SUMIFS다. 거래처가 A열, 날짜가 C열, 금액이 B열이라면 이렇게 된다.
=SUMIFS(B2:B100, A2:A100, "강남상사", C2:C100, ">=2026-05-01", C2:C100, "<=2026-05-31")합계범위(B열)가 맨 앞에 오고, 그다음부터 (조건범위, 조건) 쌍을 필요한 만큼 붙인다. 위 예시는 거래처 1개 + 날짜 시작·끝 2개, 총 세 쌍이다. 부서별+월별, 상태별+담당자별 같은 교차 집계가 전부 이 패턴이다.
조건은 모두 AND로 묶인다. 즉 나열한 조건을 전부 만족해야 합산된다. “강남상사 OR 역삼물산”처럼 OR로 묶고 싶으면 SUMIFS를 두 번 더하거나 SUMPRODUCT로 가야 하는데, 이건 다음 단계 얘기다.
COUNTIF / COUNTIFS — 세는 함수
합산이 아니라 “몇 개냐”를 묻는 거라면 COUNTIF다. 구조는 똑같고 합계범위만 빠진다.
=COUNTIF(A2:A100, "강남상사") // 강남상사 거래 건수=COUNTIF(B2:B100, ">=100000") // 10만 원 이상 건수=COUNTIFS(A2:A100, "강남상사", D2:D100, "완료") // 강남상사 + 완료 건수COUNTIF가 진짜 빛을 보는 순간은 중복 찾기다. 보조 열에 =COUNTIF($A$2:A2, A2)를 넣고 아래로 끌면, 각 값이 위에서부터 몇 번째 등장인지 누적으로 센다. 결과가 2 이상이면 중복이라는 뜻이라 정리할 때 요긴하다.
부분 일치도 된다. 와일드카드 *(아무 글자)와 ?(한 글자)를 조건에 쓰면 =COUNTIF(A2:A100, "*상사")로 “~상사”로 끝나는 거래처를 한 번에 셀 수 있다. 빈칸만 세려면 =COUNTIF(A2:A100, ""), 빈칸 아닌 것만 세려면 =COUNTIF(A2:A100, "<>")다.
실제 표로 한 번 돌려보기
말로만 보면 감이 안 오니 작은 데이터로 보자. 아래처럼 5건이 있다고 하자.
| 행 | 거래처(A) | 금액(B) | 상태(D) |
|---|---|---|---|
| 2 | 강남상사 | 120,000 | 완료 |
| 3 | 역삼물산 | 80,000 | 대기 |
| 4 | 강남상사 | 200,000 | 완료 |
| 5 | 강남상사 | 50,000 | 대기 |
| 6 | 역삼물산 | 150,000 | 완료 |
여기서 각 함수가 뱉는 값은 이렇다.
=SUMIF(A2:A6, "강남상사", B2:B6)→ 370,000 (120,000+200,000+50,000)=SUMIFS(B2:B6, A2:A6, "강남상사", D2:D6, "완료")→ 320,000 (대기인 50,000 제외)=COUNTIF(A2:A6, "강남상사")→ 3=COUNTIFS(A2:A6, "강남상사", D2:D6, "완료")→ 2
SUMIF는 강남상사 전부, SUMIFS는 거기서 “완료”만 한 번 더 걸러낸다. COUNTIF와 COUNTIFS의 관계도 똑같다. 조건을 하나 더 얹을 때마다 결과가 좁혀지는 흐름만 잡으면 응용은 그냥 따라온다.
조건식, 이렇게 쓴다
부등호나 날짜, 셀 참조가 조건에 들어가면 따옴표 처리에서 막히는 사람이 많다. 규칙은 단순하다.
- 고정값 부등호:
">=100000"처럼 부등호와 숫자를 통째로 따옴표 안에. - 셀 값과 비교:
">="&D2처럼 부등호는 따옴표 안, 셀 참조는&로 이어 붙인다.">=D2"라고 쓰면 D2라는 글자와 비교해버리니 주의. - 날짜:
">="&DATE(2026,5,1)이 가장 안전하다. 지역 설정에 따라"2026-05-01"이 안 먹는 환경이 있다.
그리고 수식을 아래로 복사할 거라면 범위는 절대참조($)로 고정하자. SUMIF($A$2:$A$100, D2, $B$2:$B$100)처럼 범위에 $를 박아두면 끌어내릴 때 범위가 밀려나지 않는다. 조건(D2)만 상대참조로 두면 행마다 조건이 한 칸씩 내려가며 깔끔하게 채워진다.
안 되는 이유 톱 5
수식은 맞게 썼는데 0이 나오거나 #VALUE! 가 뜬다면, 십중팔구 아래 다섯 중 하나다.
- 범위 길이가 안 맞음. SUMIFS에서 합계범위가
B2:B100인데 조건범위가A2:A99면 #VALUE! 가 난다. 모든 범위의 행 수를 똑같이 맞춰야 한다. - 숫자가 텍스트로 저장됨. 셀 왼쪽 위에 초록 삼각형이 보이면 숫자처럼 생긴 텍스트다. 부등호 조건이 통째로 무시되니, 해당 열을 선택해 “숫자로 변환”부터 한다.
- 눈에 안 보이는 공백. “강남상사 “처럼 뒤에 공백이 붙으면 “강남상사”와 다른 값으로 친다.
TRIM으로 정리하거나 조건에 와일드카드를 섞는다. - 와일드카드를 안 씀. 부분 일치를 기대했는데 정확히 일치하는 것만 세고 있다면
*,?가 빠진 거다. - 다른 시트 참조 오류. 시트명에 공백이나 특수문자가 있으면
'5월 매출'!A2:A100처럼 작은따옴표로 감싸야 한다.
대부분은 데이터가 지저분해서 생기는 문제지 수식 자체 문제가 아니다. 그래서 집계 전에 공백 제거와 데이터 형식 통일을 한 번 돌려두는 습관이 결국 시간을 아껴준다.
합계·개수 말고 평균은?
조건부 평균이 필요하면 같은 패턴으로 AVERAGEIF·AVERAGEIFS를 쓰면 된다. 인수 순서 규칙도 똑같다. AVERAGEIF는 합계 계열처럼 (조건범위, 조건, 평균범위) 순서고, AVERAGEIFS는 (평균범위, 조건범위1, 조건1, …)로 평균 낼 범위가 맨 앞에 온다. 앞서 본 5건 표에서 강남상사 평균 매출을 내려면 =AVERAGEIF(A2:A6, "강남상사", B2:B6) → 123,333이 나온다. 한 가지만 주의하면 되는데, 조건에 맞는 셀이 하나도 없으면 0으로 나누게 돼서 #DIV/0! 가 뜬다. 이럴 땐 IFERROR로 감싸 =IFERROR(AVERAGEIF(...), 0)처럼 처리하면 깔끔하다.
자주 막히는 질문 몇 가지
Q. SUMIFS 조건에 “이상~이하” 구간을 한 번에 못 넣나?
한 인수로는 안 된다. ">=100000"과 "<=500000"을 각각 (조건범위, 조건) 쌍으로 두 번 나눠 넣어야 한다. 같은 열을 두 번 참조해도 문제없다. =SUMIFS(B2:B100, B2:B100, ">=100000", B2:B100, "<=500000") 식이다.
Q. 결과가 0인데 데이터는 분명히 있다. 왜?
조건값과 셀 값의 형식이 다른 경우가 대부분이다. 숫자처럼 보이는 텍스트, 끝에 붙은 공백, 전각·반각 차이가 흔한 원인이다. 의심되면 비교할 셀에 =A2=D2를 찍어 TRUE가 나오는지부터 확인하면 빠르다.
Q. 이 정도면 피벗테이블이 더 낫지 않나? 집계 항목이 고정돼 있고 다른 수식에서 그 합계값을 끌어다 써야 한다면 SUMIFS가 낫다. 셀 하나에 값으로 떨어지니 다음 계산에 바로 물린다. 반대로 거래처×월×상태처럼 여러 축으로 자유롭게 돌려보며 탐색하는 단계라면 피벗테이블이 빠르다. 둘은 대체재가 아니라 용도가 갈리는 도구다.
오늘 하나만 해본다면
지금 쓰고 있는 정산 시트를 열고, 필터 걸어 눈으로 더하던 합계 한 군데를 SUMIFS 한 줄로 바꿔보자. 조건 셀을 따로 빼두고 거기서 값만 바꿔가며 거래처별·월별로 돌려보면, 왜 이걸 진작 안 썼나 싶을 거다. 거기까지 손에 익으면 그다음은 피벗테이블로 넘어갈 차례다.