엑셀에서 데이터를 분석하다 보면 특정 조건을 만족하는 값들의 합계를 구해야 할 때가 많습니다.
이때 가장 먼저 떠오르는 함수가 바로 SUMIF 함수입니다. SUMIF는 단순한 합계를 넘어, 데이터 속에서 원하는 조건에 맞는 정보만을 선별하여 합산해주는 강력한 도구입니다.
1. SUMIF 함수란?
SUMIF 함수는 단일 조건을 만족하는 셀들의 합계를 계산하는 함수입니다.
기본 구문:=SUMIF(range, criteria, [sum_range])
- range (필수): 조건을 검사할 범위입니다.
- criteria (필수): range에 적용할 조건입니다. 숫자, 텍스트, 비교 연산자(>, <, =, <>) 등을 사용할 수 있습니다. 와일드카드 문자(*, ?)도 사용 가능합니다.
- [sum_range] (선택): 합계를 구할 실제 숫자 범위입니다. 이 인수를 생략하면 range 자체가 합계를 구할 범위로 사용됩니다.
간단한 예시:
상품명 | 판매액 |
사과 | 1000 |
바나나 | 1500 |
사과 | 800 |
- 사과의 총 판매액: =SUMIF(A2:A4, "사과", B2:B4) ➡️ 1800
- 판매액이 1000 이상인 상품들의 판매액 합계: =SUMIF(B2:B4, ">=1000") ➡️ 2500 (이때 sum_range를 생략하면 range인 B2:B4에서 조건에 맞는 값의 합계를 구합니다.)
2. SUMIF 함수 최상급 고급 실무 예제
SUMIF 함수의 기본을 넘어, 실제 업무에서 유용하게 쓰일 수 있는 고급 예제들을 살펴봅시다.
예제 1: 와일드카드 문자를 이용한 부분 일치 합계
특정 텍스트를 포함하거나 특정 패턴을 가진 항목들의 합계를 구할 때 유용합니다.
시나리오: 제품 코드에 "ABC"가 포함된 모든 제품의 판매량을 합산하고 싶습니다.
제품 코드 | 판매량 |
ABC-101 | 50 |
XYZ-202 | 30 |
ABC-303 | 70 |
AB-404 | 20 |
수식: =SUMIF(A2:A5, "*ABC*", B2:B5)
"*ABC*": *는 모든 문자를 의미합니다. 따라서 "ABC"가 문자열 내 어디에든 포함된 셀을 찾습니다.
결과: 120 (ABC-101의 50 + ABC-303의 70)
예제 2: 날짜 조건을 이용한 기간별 합계
특정 날짜 이전/이후 또는 특정 기간 내의 데이터 합계를 구할 때 자주 사용됩니다.
시나리오: 2024년 6월 15일 이후 발생한 모든 매출을 합산하고 싶습니다.
날짜 | 매출액 |
2024-06-10 | 10000 |
2024-06-15 | 12000 |
2024-06-20 | 15000 |
2024-06-25 | 8000 |
수식: =SUMIF(A2:A5, ">=2024-06-15", B2:B5)
">=2024-06-15": 조건으로 직접 날짜를 입력할 때는 텍스트("")로 묶어줍니다.
결과: 35000 (12000 + 15000 + 8000)
응용: 특정 기간 (시작일~종료일) 합계 (SUMIFS 사용 권장)
SUMIF는 단일 조건만 지원하므로 특정 기간 내 합계를 구하려면 시작일과 종료일 두 조건을 사용해야 합니다.
이때는 SUMIFS 함수가 더 적합합니다. (아래 "SUMIF 대체 함수" 섹션에서 다룹니다.)
예제 3: 다른 셀의 값을 조건으로 사용
조건을 수식 내에 직접 입력하는 대신, 다른 셀에 입력된 값을 참조하여 유연하게 합계를 구할 수 있습니다.
시나리오: D1 셀에 입력된 도시 이름에 해당하는 지점의 총 매출을 구하고 싶습니다.
도시 | 지점명 | 매출 |
서울 | 강남점 | 500 |
부산 | 해운대 | 300 |
서울 | 서초점 | 700 |
대구 | 동성로 | 400 |
D1 셀에 '서울' 입력
수식: =SUMIF(A2:A5, D1, C2:C5)
D1: D1 셀에 입력된 텍스트('서울')를 조건으로 사용합니다.
결과: 1200 (강남점 500 + 서초점 700)
3. SUMIF와 비슷한 함수 및 대체 가능한 함수들
SUMIF는 강력하지만, 특정 상황에서는 다른 함수들이 더 적합하거나 추가적인 기능을 제공합니다.
3.1. SUMIFS 함수 (SUMIF의 확장판: 다중 조건 합계)
SUMIF가 단일 조건만 처리하는 반면, SUMIFS는 여러 조건을 모두 만족하는 셀들의 합계를 구합니다.
실무에서 SUMIF보다 훨씬 자주 사용되는 함수입니다.
기본 구문:
=SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
- sum_range (필수): 합계를 구할 실제 범위입니다. (SUMIF와 달리 가장 앞에 위치)
- criteria_range1 (필수): 첫 번째 조건을 검사할 범위입니다.
- criteria1 (필수): criteria_range1에 적용할 첫 번째 조건입니다.
- [criteria_range2, criteria2], ... (선택): 추가적인 조건 범위와 조건 쌍입니다.
SUMIFS 활용 예시 (SUMIF 예제 2의 기간별 합계 보완):
시나리오: 2024년 6월 15일부터 2024년 6월 25일 사이에 발생한 '사과' 품목의 매출액을 합산하고 싶습니다.
날짜 | 품목 | 매출액 |
2024-06-10 | 사과 | 10000 |
2024-06-15 | 사과 | 12000 |
2024-06-20 | 바나나 | 15000 |
2024-06-25 | 사과 | 8000 |
수식:=SUMIFS(C2:C5, A2:A5, ">=2024-06-15", A2:A5, "<=2024-06-25", B2:B5, "사과")
C2:C5: 합계를 구할 범위 (매출액)
A2:A5, ">=2024-06-15": 날짜 범위의 첫 번째 조건 (시작일)
A2:A5, "<=2024-06-25": 날짜 범위의 두 번째 조건 (종료일)
B2:B5, "사과": 품목 범위의 조건
결과: 20000 (12000 + 8000)
핵심: SUMIF는 단일 조건, SUMIFS는 다중 조건!
3.2. SUMPRODUCT 함수 (다양한 조건 및 배열 연산)
SUMPRODUCT 함수는 배열 연산을 통해 매우 복잡한 조건부 합계를 구할 수 있게 해주는 다재다능한 함수입니다. SUMIFS가 나오기 전까지는 다중 조건 합계의 핵심 함수였습니다.
기본 구문:=SUMPRODUCT(array1, [array2], [array3], ...)
- array: 곱셈을 수행할 배열 또는 범위입니다. 논리식을 배열로 사용하여 조건을 만족하는 경우 1, 아닌 경우 0으로 변환하여 합계를 구할 수 있습니다.
SUMPRODUCT 활용 예시 (SUMIFS와 동일한 결과):
=SUMPRODUCT((A2:A5>="2024-06-15")*(A2:A5<="2024-06-25")*(B2:B5="사과")*C2:C5)
해설:
(A2:A5>="2024-06-15"): 각 조건은 TRUE/FALSE의 논리값을 반환하는 배열을 만듭니다. (예: {FALSE;TRUE;FALSE;TRUE})
논리값은 수학 연산(*)을 만나면 TRUE는 1로, FALSE는 0으로 자동 변환됩니다.
세 개의 조건 배열이 모두 1일 때만 (즉, 모든 조건을 만족할 때만) 해당 행의 C2:C5 (매출액) 값이 곱해져 최종 합계에 더해집니다.
결과: 20000
SUMPRODUCT의 장점:
SUMIFS보다 유연하게 배열 연산을 수행할 수 있어, 보다 복잡한 논리나 OR 조건을 구현할 때 유리합니다.
예를 들어, '서울' 지점 또는 '부산' 지점의 매출 합계: SUMPRODUCT(((A:A="서울")+(A:A="부산"))*B:B) (OR 조건은 + 사용)
동적 배열 함수가 아닌 이전 버전 엑셀에서도 다중 조건 합계를 구할 수 있습니다.
3.3. SUBTOTAL 함수 (필터링된 데이터의 합계)
SUBTOTAL 함수는 필터링되거나 숨겨진 행을 무시하고, 보이는 데이터의 합계를 구할 때 사용합니다.
SUMIF/SUMIFS와는 목적이 다소 다르지만, 데이터 필터링 후 합계를 구할 때 유용합니다.
기본 구문:=SUBTOTAL(function_num, ref1, [ref2], ...)
function_num: 어떤 집계 함수를 사용할지 지정하는 숫자입니다. 합계의 경우 9 (숨겨진 행 포함) 또는 109 (숨겨진 행 제외)입니다.
ref: 합계를 구할 범위입니다.
SUBTOTAL 활용 예시:
데이터에 필터를 적용한 후, 보이는 행의 매출액 합계를 구하고 싶을 때.
수식:=SUBTOTAL(9, C:C) '숨겨진 행 포함 합계
=SUBTOTAL(109, C:C) '숨겨진 행 제외 합계 (필터 적용 시 유용)
핵심: SUBTOTAL은 필터링된 "보이는" 데이터에 초점을 맞춥니다.
3.4. DSUM 함수 (데이터베이스 함수: 복잡한 조건 범위)
DSUM 함수는 데이터베이스 형태로 정리된 테이블에서 지정한 조건을 만족하는 필드의 합계를 계산합니다. 조건 범위를 별도로 설정해야 하므로 다른 함수들에 비해 준비 작업이 필요하지만, 조건이 매우 복잡하거나 동적으로 변경될 때 강점을 가집니다.
기본 구문:=DSUM(database, field, criteria)
- database (필수): 데이터베이스로 사용할 범위 전체(제목 행 포함)입니다.
- field (필수): 합계를 구할 열의 이름(텍스트) 또는 열 번호입니다.
- criteria (필수): 조건을 정의하는 범위입니다. 이 범위는 최소 두 행으로 구성되어야 하며, 첫 행은 데이터베이스의 열 제목과 일치해야 합니다.
DSUM 활용 예시:
F1:G2 셀에 조건을 입력합니다. (예: F1='도시', G1='지점명', F2='서울', G2='강남점')
도시 | 지점명 | 매출 |
서울 | 강남점 | 500 |
부산 | 해운대 | 300 |
서울 | 서초점 | 700 |
대구 | 동성로 | 400 |
수식:=DSUM(A1:C5, "매출", F1:G2)
- A1:C5: 데이터베이스 범위 (제목 행 포함)
- "매출": 합계를 구할 열의 이름
- F1:G2: 조건이 정의된 범위 (도시가 서울이고 지점명이 강남점)
결과: 500
핵심: DSUM은 조건이 복잡하고 자주 바뀔 때, 조건 범위를 시트에서 직접 관리하며 유연하게 사용할 수 있습니다.
4. 결론: 어떤 함수를 선택해야 할까?
- 단일 조건 합계: SUMIF를 사용하세요. 가장 간단하고 직관적입니다.
- 다중 조건 합계: 대부분의 경우 SUMIFS를 사용하세요. 구문이 명확하고 성능이 좋습니다.
- 복잡한 논리 (OR 조건, 배열 연산 등): SUMPRODUCT를 고려해볼 수 있습니다.
- 필터링된 데이터의 합계: SUBTOTAL을 사용하세요.
- 조건이 매우 복잡하고 동적으로 변하며, 조건 범위를 시트에서 관리할 필요가 있을 때: DSUM을 고려하세요.
엑셀 데이터 분석에서 SUMIF 및 이와 관련된 함수들은 핵심적인 역할을 합니다.
각 함수의 장단점과 활용 시점을 정확히 이해하고 상황에 맞게 적용한다면, 데이터에서 훨씬 더 많은 가치를 추출해낼 수 있을 것입니다.