SUMIF 하나면 될 줄 알았는데, 조건이 하나 늘어나는 순간 수식 전체가 어긋난다. 엑셀 SUMIF와 SUMIFS의 핵심 차이는 조건 개수이며, SUMIF는 조건 1개, SUMIFS는 여러 조건을 AND로 동시에 처리한다. 그런데 두 함수는 조건 개수만 다른 게 아니다. 인수 순서 자체가 뒤집혀 있어서, SUMIF에 익숙한 감각으로 SUMIFS를 입력하면 잘못된 값이 나오거나 오류가 뜬다. 이 글에서는 두 함수의 구조를 비교하고, 실무에서 반복되는 실수와 OR 조건 처리법까지 짚는다.
SUMIF: 단일 조건 합계의 기본 구조
SUMIF의 기본 구문은 다음과 같다.
=SUMIF(range, criteria, [sum_range])
- range — 조건을 확인할 셀 범위
- criteria — 합계에 포함할 조건값 (숫자, 텍스트, 비교식, 와일드카드 모두 가능)
- sum_range — 실제 합산할 값의 범위 (생략 가능, 생략 시 range 자체를 합산)
A열에 부서명, B열에 매출이 있을 때 “영업팀”의 매출만 합산하려면 이렇게 쓴다.
=SUMIF(A2:A100, "영업팀", B2:B100)
조건이 딱 하나일 때는 충분하다. 문제는 조건이 두 개 이상으로 늘어나는 순간이다. “영업팀이면서 1월”처럼 두 조건을 동시에 만족하는 행만 더하려면, SUMIF로는 배열 수식을 쓰거나 함수를 중첩해야 한다. 바로 이 지점에서 SUMIFS가 필요해진다.
SUMIFS: sum_range가 맨 앞으로 나온다
SUMIFS의 구문은 아래와 같다.
=SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2, ...])
SUMIF와 결정적으로 다른 점이 하나 있다. 합산 범위(sum_range)가 첫 번째 인수로 나온다. SUMIF에서는 sum_range가 선택적인 세 번째 인수였지만, SUMIFS에서는 필수이자 첫 번째다. 그 뒤로 조건 범위와 조건값이 쌍으로 이어진다. 이 순서 반전이 두 함수를 섞어 쓸 때 가장 자주 발생하는 혼동의 원인이다.
앞의 예시를 SUMIFS로 바꾸면 이렇게 된다.
=SUMIFS(B2:B100, A2:A100, "영업팀")
여기에 월 조건을 하나 더 추가하면 아래처럼 이어진다.
=SUMIFS(B2:B100, A2:A100, "영업팀", C2:C100, "1월")
criteria_range·criteria 쌍은 계속 추가할 수 있고 이론상 127쌍까지 가능하다. 모든 조건은 AND로 처리된다. 즉 모든 조건을 동시에 만족하는 행만 합산한다는 뜻이다.
엑셀 함수 비교를 더 보고 싶다면 VLOOKUP과 HLOOKUP의 차이를 표 방향으로 정리한 글도 참고할 만하다. 같은 이름의 함수처럼 보이지만 동작 방향이 전혀 다른 구조를 갖고 있다.
SUMIF vs SUMIFS 구조 비교표
| 항목 | SUMIF | SUMIFS |
|---|---|---|
| 조건 개수 | 1개 | 1~127개 (모두 AND) |
| 첫 번째 인수 | 조건 확인 범위 (range) | 합산 범위 (sum_range) |
| sum_range 위치 | 세 번째, 생략 가능 | 첫 번째, 필수 |
| 범위 크기 자동 조정 | 있음 (sum_range가 짧아도 보정) | 없음 (모든 범위 크기 일치 필수) |
| OR 조건 처리 | SUMIF 여러 개를 합산 | 직접 불가 — SUMPRODUCT 필요 |
| 일치 없을 때 반환값 | 0 (오류 아님) | 0 (오류 아님) |
| 도입 버전 | 초기 버전부터 | Excel 2007부터 |
실무에서 반복되는 실수 세 가지
첫째, 인수 순서를 SUMIF 방식으로 입력한다
SUMIF를 먼저 익힌 사람이 SUMIFS로 넘어갈 때 가장 많이 겪는 실수다. 습관적으로 “조건 범위 → 조건값 → 합산 범위” 순으로 입력하면, 엑셀은 첫 번째 인수를 sum_range로 읽기 때문에 전혀 다른 범위를 합산하거나 #VALUE! 오류를 낸다. SUMIFS를 쓸 때는 항상 합산 범위부터 시작한다고 기억해야 한다.
둘째, 조건 범위와 합산 범위의 크기가 다르다
SUMIF는 sum_range가 range보다 짧아도 range의 첫 셀을 기준으로 자동 보정한다. 반면 SUMIFS는 이 자동 조정이 없다. sum_range, criteria_range1, criteria_range2가 행 수가 조금이라도 다르면 바로 #VALUE! 오류가 발생한다. 범위를 선택할 때 항상 동일한 행 수를 유지해야 한다.
셋째, 텍스트 조건에서 셀 참조와 와일드카드를 잘못 결합한다
A1 셀에 “영업”이 있고 “영업”으로 시작하는 항목을 모두 합산하고 싶다면 criteria 자리에 A1&"*"처럼 앰퍼샌드로 이어 붙이면 된다. 그런데 따옴표 위치나 앰퍼샌드 순서를 잘못 잡아 오류를 내는 경우가 많다. 수식 오류를 만났을 때는 수식보다 데이터 형식을 먼저 의심하는 것이 진단 시간을 줄이는 지름길이다 — SUMIF·SUMIFS 오류도 대부분 데이터가 원인이다.
OR 조건이 필요할 때 — SUMIFS로는 안 된다
흔히 오해하는 부분이 있다. SUMIFS에 조건을 더 넣으면 OR도 될 거라고 생각하는 것이다. 그렇지 않다. SUMIFS의 조건은 전부 AND다. “영업팀이거나 마케팅팀”처럼 OR 조건이 필요하면 다른 접근이 필요하다.
- SUMIF 합산 — 조건별로 SUMIF를 각각 쓰고 더한다.
=SUMIF(A2:A100,"영업팀",B2:B100)+SUMIF(A2:A100,"마케팅팀",B2:B100) - SUMPRODUCT — AND·OR가 혼합된 복잡한 조건은 SUMPRODUCT로 배열 연산을 직접 구성한다.
=SUMPRODUCT(((A2:A100="영업팀")+(A2:A100="마케팅팀")>0)*B2:B100)
SUMIF 합산 방식은 구조가 단순하지만 한 행이 두 조건을 동시에 만족하면 중복 집계된다. 그런 경우가 없다고 확신할 수 있을 때만 안전하다. 중복 가능성이 있으면 SUMPRODUCT를 쓰는 것이 맞다.
언제 SUMIF, 언제 SUMIFS를 선택할까
조건이 1개면 SUMIF, 2개 이상의 AND 조건이면 SUMIFS. 원칙은 이것뿐이다. 다만 실무에서는 처음에 조건 1개로 시작했다가 나중에 조건이 추가되는 상황이 흔하다. 그렇다면 처음부터 SUMIFS로 작성해두는 게 유리하다. SUMIFS에 조건 쌍 1개만 넣으면 SUMIF와 완전히 같은 결과를 내기 때문에, 나중에 수식 구조를 바꾸지 않아도 된다.
한편 조건 조합이 동적으로 계속 바뀌고 다양한 축으로 슬라이싱이 필요한 분석이라면, SUMIFS보다 피벗 테이블 쪽이 훨씬 유연하다. 수식은 조건이 고정될 때 빠르고, 피벗은 조건을 바꿔가며 탐색할 때 강하다.
정리
SUMIF와 SUMIFS의 차이는 두 가지로 압축된다. 첫째, 조건 개수 — SUMIF는 1개, SUMIFS는 여러 개. 둘째, 인수 순서 — SUMIF는 조건 범위부터, SUMIFS는 합산 범위부터. 이 두 가지를 확실히 구분하면 조건부 합계 수식에서 헤맬 일이 없다. 와일드카드 결합, OR 처리, 범위 크기 맞추기 같은 세부 사항은 이 기본 구조를 정확히 이해한 다음에야 제대로 다가온다.
자주 묻는 질문
SUMIF와 SUMIFS 중 어떤 함수를 먼저 익혀두는 게 나을까요?
처음부터 SUMIFS를 익히는 편이 낫습니다. 조건이 1개뿐이어도 SUMIFS로 동일하게 작동하고, 나중에 조건이 늘어날 때 수식 구조를 다시 짜지 않아도 됩니다.
SUMIFS에서 OR 조건(A이거나 B)을 쓰려면 어떻게 하나요?
SUMIFS의 모든 조건은 AND로 처리됩니다. OR 조건이 필요하면 SUMIF 두 개를 더하거나, SUMPRODUCT 함수로 배열 연산을 직접 구성하세요.
SUMIF에서 sum_range를 생략하면 어떻게 되나요?
첫 번째 인수인 range 자체를 합산 범위로 사용합니다. 조건 확인 대상과 합산 대상이 동일한 열일 때 유용합니다.
SUMIFS에서 #VALUE! 오류가 나는 가장 흔한 이유는 무엇인가요?
합산 범위(sum_range)와 조건 범위(criteria_range)의 행 수가 다를 때 발생합니다. SUMIF와 달리 SUMIFS는 범위 크기를 자동 조정하지 않으므로 모든 범위를 동일하게 맞춰야 합니다.
날짜 조건을 SUMIFS에 사용할 때 주의할 점이 있나요?
날짜 조건은 비교 연산자를 포함한 텍스트 형태로 입력해야 합니다. 예를 들어 ">="&DATE(2024,1,1) 처럼 앰퍼샌드(&)로 연산자 문자열과 날짜 함수를 결합하는 방식이 안정적입니다.