매출 데이터에서 "지역이 서울인 매장의 매출 합계"를 구해야 하는 상황을 떠올려보자. 손으로 하나씩 골라 더할 수도 있겠지만, 행이 수천 개라면 이야기가 달라진다. 이럴 때 등장하는 함수가 SUMIF다. 그런데 정작 "SUMIF가 정확히 어떤 방식으로 조건에 맞는 값만 골라내는가"를 설명해보라고 하면 의외로 막히는 경우가 많다. 이번 글에서는 SUMIF와 SUMIFS의 겉모습이 아니라, 그 내부에서 벌어지는 계산 원리를 뜯어본다.
SUMIF의 기본 구조 복습
SUMIF는 세 개의 인수를 받는다. 조건을 검사할 범위, 그 조건 자체, 그리고 실제로 합산할 범위다.
=SUMIF(A2:A100, "서울", C2:C100)여기서 A2:A100은 지역명이 적힌 열, C2:C100은 매출액이 적힌 열이다. 겉으로는 단순히 "서울인 것만 더해줘"라는 명령처럼 보이지만, 내부적으로는 좀 더 구조적인 일이 벌어진다.
조건 배열과 합계 배열이 짝지어지는 방식
SUMIF는 먼저 조건 범위(A2:A100)의 각 셀을 하나씩 검사해서, "서울"과 일치하면 TRUE, 아니면 FALSE로 이루어진 하나의 논리값 배열을 머릿속으로 만든다고 생각하면 이해하기 쉽다. 예를 들어 A2가 "서울", A3이 "부산", A4가 "서울"이라면 그 결과는 {TRUE, FALSE, TRUE, ...}와 같은 배열이 된다.
그다음 이 TRUE/FALSE 배열을 합계 범위(C2:C100)와 같은 위치끼리 짝지어 대응시킨다. A2가 TRUE이므로 C2의 값을 채택하고, A3이 FALSE이므로 C3의 값은 버리고, A4가 TRUE이므로 C4의 값을 채택하는 식이다. 결국 SUMIF는 "조건 범위에서 만든 참/거짓 지도를, 합계 범위 위에 그대로 겹쳐 놓고, 참인 위치의 값들만 골라 더하는" 함수라고 이해할 수 있다. 이 때문에 조건 범위와 합계 범위는 반드시 행 개수(또는 크기)가 같아야 한다. 위치가 어긋나면 엉뚱한 값이 더해지거나 오류가 발생한다.
SUMIFS — 여러 조건을 동시에 겹쳐 보기
SUMIFS는 이 원리를 조건 여러 개로 확장한 것이다.
=SUMIFS(C2:C100, A2:A100, "서울", B2:B100, "가전")이 수식은 "지역이 서울"이라는 참/거짓 배열과 "카테고리가 가전"이라는 참/거짓 배열을 각각 만든 뒤, 두 배열을 같은 위치끼리 AND 연산으로 겹친다. 즉 두 조건이 동시에 TRUE인 위치만 최종적으로 TRUE로 남고, 그 위치에 해당하는 합계 범위의 값만 더해진다. SUMIF는 인수 순서가 '합계범위, 조건범위, 조건'인데 SUMIFS는 '합계범위, 조건범위1, 조건1, 조건범위2, 조건2, ...' 순서로, 합계 범위가 맨 앞으로 온다는 차이도 실수하기 쉬운 부분이니 기억해두자.
구조를 알면 보이는 실전 활용
| 상황 | 수식 예시 |
|---|---|
| 날짜 범위 내 매출 합계 | =SUMIFS(C:C, D:D, ">="&DATE(2026,1,1), D:D, "<="&DATE(2026,1,31)) |
| 특정 문자로 시작하는 항목 합계 | =SUMIF(A:A, "서울*", C:C) |
| 여러 지역 중 하나라도 해당하면 합계 | =SUM(SUMIF(A:A, {"서울","부산"}, C:C)) |
날짜 범위처럼 부등호 조건을 두 번 겹치는 경우도 결국 "이상인 위치"와 "이하인 위치"라는 두 개의 참/거짓 배열을 AND로 겹치는 동일한 원리다. 이 원리를 이해하고 나면 SUMIFS의 조건이 왜 짝수 개의 인수(범위, 조건)로만 늘어나는지도 자연스럽게 납득이 간다.
자주 하는 실수
- 조건 범위와 합계 범위의 행 개수가 다른 경우: A2:A100인데 C2:C99처럼 범위가 어긋나면 위치가 밀려 잘못된 값이 더해지거나 오류가 난다.
- 텍스트 조건에 따옴표를 빠뜨리는 경우: "서울"처럼 문자 조건은 반드시 큰따옴표로 감싸야 한다.
- 절대참조를 걸지 않아 수식을 복사할 때 범위가 밀려버리는 경우: 조건 범위와 합계 범위는 대부분 $ 기호로 고정해두는 것이 안전하다.
Q. SUMIF와 SUMIFS 중 조건이 하나뿐이면 어떤 걸 써야 하나요?
조건이 하나뿐이라면 SUMIF로도 충분하다. 다만 앞으로 조건이 늘어날 가능성이 있다면 처음부터 SUMIFS로 작성해두는 것이 나중에 수식을 수정하기 편하다.
Q. 조건 범위에 숫자가 섞여 있어도 되나요?
가능하다. ">=100"처럼 부등호와 숫자를 하나의 텍스트 조건으로 묶어서 사용하면 된다.
Q. OR 조건(둘 중 하나)은 어떻게 처리하나요?
SUMIFS 자체는 AND 조건만 지원하므로, OR 조건이 필요하면 위 표의 세 번째 예시처럼 배열 상수와 SUM을 함께 사용하거나 SUMIF를 여러 번 더해주는 방식을 쓴다.
마무리
SUMIF와 SUMIFS의 핵심은 "조건 범위를 참/거짓 배열로 바꾸고, 그 배열을 합계 범위 위에 겹쳐서 참인 위치만 더한다"는 한 문장으로 요약된다. 여러 조건을 쓰는 SUMIFS는 이 참/거짓 배열들을 AND로 겹치는 것뿐이다. 다음 글에서는 이 원리와 구조적으로 매우 닮아 있는 COUNTIF/COUNTIFS가 '더하기' 대신 '개수 세기'를 어떻게 처리하는지 비교해본다.