핵심 요약
- 표 옆에 작은 조건표를 만들어 두고, 조건 칸의 글자만 바꿔 가며 합계·개수·평균을 내는 방법입니다.
DSUM(합계)·DCOUNTA(개수)·DAVERAGE(평균)는 모두(데이터 범위, "머리글", 조건표)세 칸만 채우면 됩니다.- 예제에서 "서울·신규" 조건으로 합계 21, 2건, 평균 10.5가 나옵니다. 조건표에 줄을 더하면 "또는" 조건도 됩니다.
명단을 놓고 "서울 신규 고객은 몇 명이고 수량 합계는 얼마지?", "그럼 부산은?" 하고 조건을 바꿔 가며 물어볼 일이 많습니다. SUMIFS로도 되지만, 조건을 바꿀 때마다 수식 안의 글자를 고쳐야 합니다. 조건을 셀에 따로 적어 두는 D함수를 쓰면 수식은 그대로 두고 조건 칸만 고치면 됩니다.
컴퓨터활용능력(컴활) 실기 준비 자료에서 "데이터베이스 함수"로 묶여 나오는 함수들이기도 합니다. 이 글은 엑셀 "목적별 함수 조합" 시리즈의 한 편으로, 세 함수를 같은 조건표 하나로 한꺼번에 익힙니다.
예제 표: 데이터 범위와 조건표
A1:E10이 데이터, G1:H2가 조건표입니다. 이름은 모두 가상입니다. 맨 윗줄의 A~H는 열 이름, 맨 왼쪽 숫자는 행 번호입니다. E열의 빈칸은 아직 후속 연락을 안 한 사람입니다.
| A | B | C | D | E | F | G | H | |
|---|---|---|---|---|---|---|---|---|
| 1 | 이름 | 지역 | 구분 | 수량 | 후속연락 | 지역 | 구분 | |
| 2 | 김민준 | 서울 | 신규 | 12 | 완료 | 서울 | 신규 | |
| 3 | 이서연 | 부산 | 기존 | 8 | ||||
| 4 | 박지훈 | 서울 | 기존 | 15 | 완료 | |||
| 5 | 최수아 | 대전 | 신규 | 7 | 수량 합계 | |||
| 6 | 정도윤 | 서울 | 신규 | 9 | 건수 | |||
| 7 | 강하은 | 부산 | 신규 | 11 | 완료 | 평균 수량 | ||
| 8 | 조현우 | 대전 | 기존 | 6 | ||||
| 9 | 윤지아 | 서울 | 기존 | 10 | 완료 | |||
| 10 | 한지민 | 부산 | 신규 | 13 | 완료 |
조건표는 두 줄입니다. 윗줄(G1:H1)은 데이터의 머리글과 똑같은 글자, 아랫줄(G2:H2)은 찾을 값입니다. 머리글은 손으로 치지 말고 B1·C1을 복사해 붙여 넣으면 글자가 어긋날 일이 없습니다. H5:H7에 결과를 받겠습니다.
완성 수식: H5·H6·H7
H5 =DSUM(A1:E10,"수량",G1:H2)
H6 =DCOUNTA(A1:E10,"이름",G1:H2)
H7 =DAVERAGE(A1:E10,"수량",G1:H2)
- H5를 클릭하고 첫 번째 수식을 입력한 뒤 Enter를 누릅니다.
21이 나오면 정상입니다. - H6, H7에도 같은 방법으로 입력합니다. 세 수식은 함수 이름과 두 번째 칸만 다릅니다.
- 이제 G2의 "서울"을 "부산"으로 바꿔 보세요. 수식은 건드리지 않았는데 결과가 바뀝니다.
| 조건표 (G2 / H2) | H5 합계 | H6 건수 | H7 평균 | 걸린 사람 |
|---|---|---|---|---|
| 서울 / 신규 | 21 | 2 | 10.5 | 김민준 12, 정도윤 9 |
| 부산 / (빈칸) | 32 | 3 | 약 10.67 | 이서연 8, 강하은 11, 한지민 13 |
H2를 비우면 "구분은 따지지 않는다"는 뜻이 되어 부산의 신규·기존이 모두 걸립니다. Microsoft 문서도 조건 범위의 머리글 아래를 비워 두면 그 열 전체를 대상으로 계산한다고 설명합니다.
수식 풀어 보기: 세 칸이 하는 일
D함수는 안쪽에 다른 함수가 들어 있지 않습니다. 대신 세 칸이 각각 한 가지 일을 합니다. DSUM(A1:E10,"수량",G1:H2)을 서울·신규 조건으로 따라가 보겠습니다.
1칸: 데이터 범위 A1:E10 — 머리글 줄까지 포함
첫 칸은 머리글이 있는 1행부터 잡아야 합니다. D함수는 1행의 "이름·지역·구분·수량·후속연락"을 보고 열을 찾기 때문입니다. SUMIFS처럼 A2부터 잡으면 "수량"이라는 머리글을 찾을 수 없어 제대로 계산되지 않습니다. Microsoft 문서도 데이터 범위의 첫 행에 열 머리글이 있어야 한다고 적고 있습니다.
3칸: 조건표 G1:H2 — 같은 줄은 "그리고"
조건표를 읽는 순서로는 세 번째 칸이 먼저입니다. G2 "서울"과 H2 "신규"가 같은 줄에 있으면 "지역이 서울이고 구분이 신규"라는 뜻입니다. 데이터에서 이 두 조건을 모두 만족하는 행은 2행(김민준)과 6행(정도윤)입니다.
2칸: "수량" — 어느 열로 계산할지
걸린 행들에서 "수량" 열의 값 12와 9를 꺼냅니다. 그다음 함수 이름에 따라 계산이 달라집니다.
| 함수 | 하는 일 | 서울·신규 결과 |
|---|---|---|
DSUM | 걸린 행의 그 열 값을 더함 | 12 + 9 = 21 |
DAVERAGE | 걸린 행의 그 열 값의 평균 | (12 + 9) ÷ 2 = 10.5 |
DCOUNTA | 걸린 행 중 그 열이 비어 있지 않은 칸의 수 | "이름" 열 기준 2 |
두 번째 칸은 머리글 글자 대신 몇 번째 열인지 숫자로 써도 됩니다. 수량은 A열부터 네 번째라 =DSUM(A1:E10,4,G1:H2)도 결과가 같습니다. 머리글을 쓰는 쪽이 나중에 읽기 쉽습니다.
DCOUNTA는 두 번째 칸에 따라 결과가 달라집니다. 같은 서울·신규 조건에서 =DCOUNTA(A1:E10,"후속연락",G1:H2)는 1입니다. 정도윤(6행)의 후속연락 칸이 비어 있어 세지 않기 때문입니다. "조건에 맞는 사람 수"를 세려면 이름처럼 항상 채워져 있는 열을 고르고, "그중 후속 연락을 마친 사람 수"를 세려면 후속연락 열을 고르면 됩니다.
응용 1: 다른 줄은 "또는"
조건표를 G1:H3으로 한 줄 늘려 G3에 "부산", H3에 "신규"를 적고, 수식의 세 번째 칸을 G1:H3으로 바꿉니다.
| G | H | |
|---|---|---|
| 1 | 지역 | 구분 |
| 2 | 서울 | 신규 |
| 3 | 부산 | 신규 |
"서울 신규 또는 부산 신규"가 되어 =DSUM(A1:E10,"수량",G1:H3)의 결과는 12 + 9 + 11 + 13 = 45입니다. 같은 줄은 "그리고", 다른 줄은 "또는"이라는 규칙은 Microsoft의 고급 필터 문서에 나온 조건 범위 규칙과 같습니다. SUMIFS로 같은 결과를 내려면 SUMIFS 두 개를 더해야 하니, 조건이 "또는"으로 늘어날 때 D함수가 특히 편합니다.
응용 2: 한 열에 범위 조건 — 머리글을 두 번
"수량이 10 이상 13 이하"처럼 한 열에 조건이 두 개면 머리글 "수량"을 두 칸에 나란히 적습니다.
| J | K | |
|---|---|---|
| 1 | 수량 | 수량 |
| 2 | >=10 | <=13 |
=DSUM(A1:E10,"수량",J1:K2)는 12 + 11 + 10 + 13 = 46, =DCOUNTA(A1:E10,"이름",J1:K2)는 4입니다.
자주 막히는 곳
결과가 예상과 다를 때
- 조건표 머리글이 데이터 머리글과 다릅니다. "지역 "처럼 뒤에 공백이 붙거나 "지 역"처럼 띄어 쓰면 데이터의 "지역" 열과 같은 열로 알아보지 못합니다. 데이터의 머리글 셀을 복사해 붙여 넣으세요.
- 데이터 범위를 2행부터 잡았습니다. 첫 칸은 머리글 줄(1행)부터 잡아야 합니다.
- 조건표를 데이터 바로 아래에 두었습니다. Microsoft 문서는 조건 범위를 목록 아래에 두지 말고, 목록과 겹치지 않게 하라고 안내합니다. 나중에 데이터를 아래로 추가할 자리가 막히기 때문입니다. 예제처럼 오른쪽이나 다른 시트에 두세요.
- 데이터를 추가했는데 반영이 안 됩니다. 11행에 새 사람을 적었다면 첫 칸을
A1:E11로 늘려야 합니다. 처음부터A1:E500처럼 넉넉히 잡아 두면 편합니다. - 조건 칸에 글자만 쓰면 "그 글자로 시작하는 값"이 걸립니다(Microsoft 고급 필터 문서 기준). 예를 들어 지역에 "서울"과 "서울북부"가 같이 있으면 "서울"로 둘 다 걸립니다. 정확히 "서울"만 원하면 조건 칸에
="=서울"이라고 입력합니다. Microsoft의 DSUM 문서 예제도 이 방식으로 조건을 적습니다.
다른 방법: SUMIFS·COUNTIFS·AVERAGEIFS
같은 서울·신규 결과를 조건 함수로 내면 이렇습니다. 검증에서 D함수 결과와 모두 같았습니다.
=SUMIFS(D2:D10,B2:B10,"서울",C2:C10,"신규") → 21
=COUNTIFS(B2:B10,"서울",C2:C10,"신규") → 2
=AVERAGEIFS(D2:D10,B2:B10,"서울",C2:C10,"신규") → 10.5
| 비교 | D함수 (DSUM 등) | 조건 함수 (SUMIFS 등) |
|---|---|---|
| 조건 바꾸기 | 조건표 칸만 고침 | 수식 안 글자나 참조 셀을 고침 |
| "또는" 조건 | 조건표에 줄 추가 | 함수를 여러 개 더해야 함 |
| 범위 잡기 | 머리글 포함 전체 표 | 머리글 빼고 열마다 따로 |
| 한 표에 여러 조건 결과 펼치기 | 조건표를 따로 여러 개 만들어야 함 | 수식을 채우기 핸들로 끌어 쉽게 펼침 |
"조건을 이리저리 바꿔 보며 한 칸의 결과를 보는" 용도에는 D함수가, "지역별·월별로 표를 쭉 채우는" 용도에는 SUMIFS가 잘 맞습니다. 시험 문제에서 함수가 지정돼 있다면 그 함수를 쓰면 됩니다.
자주 묻는 질문
DSUM 결과가 예상과 다릅니다.
조건표 머리글이 데이터 머리글과 글자까지 똑같은지, 데이터 범위를 머리글 줄부터 잡았는지 확인하세요. 머리글 뒤 공백 하나로도 같은 열로 알아보지 못합니다. 데이터의 머리글 셀을 복사해 조건표에 붙여 넣으면 안전합니다.
DCOUNTA와 COUNTIFS 결과가 다릅니다.
DCOUNTA는 두 번째 칸에 지정한 열에서 비어 있지 않은 칸만 셉니다. 그 열에 빈칸이 있는 행은 조건에 맞아도 빠집니다. 조건에 맞는 행 수를 세려면 이름처럼 항상 채워진 열을 지정하세요.
"또는" 조건은 어떻게 거나요?
조건표에 줄을 추가해 다른 줄에 적습니다. 같은 줄은 "그리고", 다른 줄은 "또는"입니다. 줄을 늘렸으면 수식의 세 번째 칸 범위도 G1:H3처럼 함께 늘려야 합니다.
함께 보면 좋은 글: 엑셀 SUMIF SUMIFS 조건부 합계 구하기, 엑셀 COUNTIF COUNTIFS 조건 개수 세기, 엑셀 AVERAGEIF AVERAGEIFS 조건부 평균, 엑셀 필터 사용법 원하는 데이터만 보기. 목적별 함수 조합 글 전체는 엑셀 목차에서 볼 수 있습니다.
참고: Microsoft 지원 — DSUM 함수, Microsoft 지원 — DCOUNTA 함수, Microsoft 지원 — 고급 조건을 사용하여 필터링
댓글
댓글 남기기