- 최초 작성일: 1999-10-23
- 최종 수정일: 2026-09-29
- 조회수: 21 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: DSUM 함수Ⅰ
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
아래와 같은 데이터가 있다고 할 때, 이것을 분석하는 한가지 방법에 대해 설명을 드립니다. 몇 강좌 전에 Dget 함수에 대해 소개해 드렸지요?
오늘은 그 사촌쯤되는 dsum()함수의 활용 예제입니다.
함수명 앞에 "d"가 붙는 것은 데이터베이스용 함수라는 것은 이제 다들 아시지요?
DSUM 함수Ⅰ
핵심 요약
- DSUM은 데이터베이스 범위와 합계를 낼 필드, 검색 조건 범위를 지정해 조건에 맞는 합계를 구합니다.
- 조건 필드가 여러 개여도 조건 테이블을 구성하면 복수 조건을 조합해 원하는 결과를 계산할 수 있습니다.
- 조건 범위의 머리글은 원본 데이터의 필드명과 동일하게 구성하는 것이 중요하며 DCOUNT 등 다른 데이터베이스 함수에도 같은 원리가 적용됩니다.
| 지점명 | 팀장명 | 담당명 | SM명 | 목표금액 | 판매금액 |
| 강동 | 심정수 | 이순신 | 이선형 | 10,000,000 | 11,000,000 |
| 강동 | 심정수 | 이순신 | 이선형 | 10,000,000 | 9,500,000 |
| 강동 | 심정수 | 이순신 | 이선형 | 10,000,000 | 8,800,000 |
| 강동 | 심정수 | 김한수 | 김한나 | 10,000,000 | 13,500,000 |
| 강동 | 심정수 | 김한수 | 김한나 | 10,000,000 | 8,950,000 |
| 강동 | 심정수 | 김한수 | 김한나 | 10,000,000 | 13,690,000 |
| 강동 | 심정수 | 김한수 | 김한나 | 10,000,000 | 9,090,000 |
| 강서 | 조만수 | 김막동 | 박지원 | 15,000,000 | 18,000,000 |
| 강서 | 조만수 | 김막동 | 박지원 | 15,000,000 | 15,300,000 |
| 강서 | 조만수 | 김막동 | 박지원 | 15,000,000 | 8,800,000 |
| 강서 | 조만수 | 조물주 | 조수지 | 15,000,000 | 9,090,000 |
| 강서 | 조만수 | 조물주 | 조수지 | 15,000,000 | 20,000,000 |
| 강서 | 조만수 | 조물주 | 조수지 | 15,000,000 | 17,320,000 |
| 강서 | 조만수 | 조물주 | 조수지 | 15,000,000 | 13,000,000 |
| 강남 | 백재현 | 구민식 | 강수지 | 13,500,000 | 13,000,000 |
| 강남 | 백재현 | 구민식 | 강수지 | 13,500,000 | 12,000,000 |
| 강남 | 백재현 | 구민식 | 강수지 | 13,500,000 | 14,000,000 |
| 강남 | 백재현 | 구민식 | 김나리 | 13,500,000 | 13,500,000 |
| 강남 | 백재현 | 구민식 | 김나리 | 13,500,000 | 20,000,000 |
| 강남 | 백재현 | 김유신 | 김나리 | 13,500,000 | 14,400,000 |
| 강남 | 백재현 | 김유신 | 김나리 | 13,500,000 | 12,900,000 |
| 강남 | 백재현 | 김유신 | 김나리 | 13,500,000 | 13,131,000 |
| 강남 | 백재현 | 김유신 | 강수연 | 13,500,000 | 12,580,000 |
| 강북 | 김찬팔 | 김춘추 | 강수연 | 17,000,000 | 19,653,000 |
| 강북 | 김찬팔 | 김춘추 | 강수연 | 11,000,000 | 10,000,000 |
| 강북 | 김찬팔 | 김춘추 | 강수연 | 10,000,000 | 10,000,000 |
| 강북 | 김찬팔 | 김춘추 | 강수연 | 8,000,000 | 10,000,000 |
| 강북 | 김찬팔 | 홍사용 | 박세리 | 17,000,000 | 20,000,000 |
| 강북 | 김찬팔 | 홍사용 | 박세리 | 17,000,000 | 7,890,000 |
| 강북 | 김찬팔 | 홍사용 | 박세리 | 17,000,000 | 18,000,000 |
| 강북 | 김찬팔 | 홍사용 | 박세리 | 9,000,000 | 10,000,000 |
Vlookup 함수는 조건 필드가 하나일 때는 요긴하게 활용할 수 있으나 조건 필드가 여러 개일 때에는 곤란하지요? 그러나 Dsum, Dget 함수 등은 조건필드가 몇 개가 되든 상관없습니다.
먼저, 아래와 같은 조건필드가 필요합니다.
이것도 Exceller의 다년간(?) 경험에 의하면 소스테이블(원본자료)의 타이틀 부분(일명 Header)을 통째로 복사해서 사용하는 것이 좋습니다.
| 지점명 | 팀장명 | 담당명 | SM명 | 목표금액 | 판매금액 |
| 강서 | 조만수 | 조물주 | 조수지 |
검색결과 59,410,000
위의 표 중에서 검색조건 부분(회색으로 칠해진 부분)에 여러분들이 검색하고자 하는 조건을 입력해 보세요. 입력된 조건에 따라 검색결과가 자동으로 바뀔 것입니다. 조건이 몇개든 상관없이 말이지요.
이처럼 조건테이블을 만든후 데이터베이스 함수를 활용하면 아주 간단하게 자기가 원하는 결과를 검색할 수가 있는 것입니다.
참고: Excel 2007 이상에서는 SUMIFS 함수로도 여러 조건을 만족하는 합계를 구할 수 있습니다. 조건을 표로 만들어 두고 수식을 바꿔 가며 검색하려는 이 글의 방식에는 데이터베이스 함수가 여전히 편리합니다.
그러면 dsum()함수의 성질머리(구성요소)에 대해 알아볼까요?
요 부분의 수식을 보면,
=DSUM(B8:G39,G50,B50:G51)
이렇게 지정이 되어 있지요?
Dsum(전체 데이터베이스 범위, sum 할 필드명, 검색조건 테이블 범위)
이렇게 구성되어 있습니다.
dcount()함수도 dsum()함수와 똑같은 성질머리를 가지고 있으니까 다들 연습해 보시고… 그밖의 데이터베이스 함수에 대해서는 도움말을 참고하세요.
다음 시간에는 Dsum, Dcount 등의 함수를 콤보상자와 조합해서 사용하는 예제에 대해 설명을 드리겠습니다.
오늘은 여기까지…
정리 — DSUM 함수Ⅰ
| 구분 | 내용 |
|---|---|
| 함수 | DSUM: 데이터베이스 범위에서 조건에 맞는 값의 합계를 구함 |
| 형식 | Dsum(전체 데이터베이스 범위, sum 할 필드명, 검색조건 테이블 범위) |
| 예제 | =DSUM(B8:G39,G50,B50:G51) |
| 조건 테이블 | 원본 표의 머리글을 통째로 복사해 만들고 아래 행에 검색 조건을 입력 |
| 예제 결과 | 강서 - 조만수 - 조물주 - 조수지 조건의 판매금액 합계 59,410,000 |
| 확장 | DCOUNT 함수도 같은 구성이며 나머지 데이터베이스 함수는 도움말을 참고 |
자주 묻는 질문 (FAQ)
Q1. 여러 조건을 만족하는 합계를 구하려면 어떻게 하나요?
DSUM 함수를 사용합니다. 원본 표의 머리글을 복사해 조건 테이블을 만들고 그 아래 행에 검색할 조건을 입력하면, 조건이 몇 개든 합계를 구할 수 있습니다.
Q2. DSUM 함수의 인수는 무엇인가요?
전체 데이터베이스 범위, 합계를 구할 필드명, 검색조건 테이블 범위의 세 가지입니다.
Q3. VLOOKUP 함수와는 어떻게 다른가요?
VLOOKUP 함수는 조건 필드가 하나일 때 유용하지만 여러 개일 때는 곤란합니다. DSUM이나 DGET 함수는 조건 필드가 몇 개여도 쓸 수 있습니다.
마치며
조건이 여러 개인 집계는 조건 테이블을 만들어 데이터베이스 함수로 풀어 보시기 바랍니다. VBA에 대한 기초 지식을 공부하실 분은 아이엑셀러 닷컴 사이트 상단 메뉴에서 [Excel 강의] - [Excel 입문]을 먼저 보시면 이해하기 쉽습니다.