- 공유 링크 만들기
- X
- 이메일
- 기타 앱
이 글의 목적은 엑셀에서 3차원 참조(3D Reference)를 활용하여 여러 시트의 동일 위치 데이터를 한 번에 합계·평균·최댓값 등으로 집계하는 실무형 방법을 체계적으로 설명하고, 제한사항과 대안(INDIRECT·SUMPRODUCT·REDUCE·Power Query·VBA)을 비교 정리하여 현장에서 즉시 적용할 수 있도록 돕는 것이다.
1. 3차원 참조(3D Reference)란 무엇인가
3차원 참조란 동일한 구조를 가진 여러 시트의 동일한 셀이나 범위를 한 번에 참조하는 기능을 말한다. 구문은 다음과 같다.
=함수(첫시트:끝시트!셀또는범위) 예를 들어 부서별 시트가 Sales_Q1, Sales_Q2, Sales_Q3이고, 각 시트의 B2에 월 매출이 있다고 가정하면 다음과 같이 합계를 구할 수 있다.
=SUM(Sales_Q1:Sales_Q3!B2) 참조 구간에 포함되는 시트는 시트 탭 순서에 의해 결정된다. 즉, Sales_Q1에서 Sales_Q3까지 탭 사이에 존재하는 모든 시트가 범위에 포함된다.
=SUM('2025 Q1':'2025 Q3'!B2) 형태로 작성한다.2. 가장 안전한 기본 패턴: 경계 시트(가드 시트)로 범위 고정
시트 추가·삭제·순서 변경이 잦은 파일에서는 3D 범위가 의도치 않게 변할 수 있다. 이때 빈 시트 두 개를 경계로 두면 안정적으로 범위를 제어할 수 있다.
- 탭 맨 앞에 _START, 맨 뒤에 _END라는 빈 시트를 생성한다.
- 집계 대상 시트(예: 서울, 부산, 대전)를 두 경계 시트 사이로 배치한다.
- 다음 공식을 사용하여 집계한다.
=SUM(_START:_END!B2) 이렇게 하면 가운데에 어떤 시트를 추가해도 자동으로 집계 범위에 포함된다.
3. 3차원 참조로 바로 쓸 수 있는 함수
| 함수 | 용도 | 3D 지원 여부 | 예시 |
|---|---|---|---|
| SUM | 합계 | 지원 | =SUM(DeptA:DeptD!C10) |
| AVERAGE | 평균 | 지원 | =AVERAGE(Jan:Dec!F5) |
| MAX / MIN | 최대/최소 | 지원 | =MAX(W1:W4!H3) |
| COUNT / COUNTA | 개수 | 지원 | =COUNT(S1:S12!B2) |
| PRODUCT | 곱 | 지원 | =PRODUCT(Team1:Team5!D2) |
4. 동일 레이아웃에서의 빠른 집계 예시
모든 월 시트(Jan~Dec)에 동일한 표 구조가 있고, B2:B13이 월별 품목 A의 일별 매출이라고 가정한다.
=SUM(Jan:Dec!B2:B13) ' 12개월 합계 =AVERAGE(Jan:Dec!B2:B13) ' 12개월 일평균 =MAX(Jan:Dec!B2:B13) ' 12개월 중 일 최대값 특정 하나의 셀을 합산하려면 다음과 같이 작성한다.
=SUM(Jan:Dec!H10) 5. 조건부 집계 우회 1: 시트 목록 + INDIRECT
여러 시트에서 조건을 걸어 합산해야 할 때는 시트 이름 목록을 별도로 만들고, INDIRECT로 각 시트를 개별 참조한 뒤 합산한다. 시트 이름 목록은 예를 들어 A2:A13에 Jan, Feb, …, Dec로 둔다.
=SUMPRODUCT( SUMIF( INDIRECT("'" & $A$2:$A$13 & "'!$C:$C"), ' 조건열 $E$1, ' 조건값(예: 품목코드) INDIRECT("'" & $A$2:$A$13 & "'!$D:$D") ' 합계열 ) ) 이 패턴은 조건부 합산을 여러 시트에 적용할 때 가장 범용적으로 쓰인다. 하지만 INDIRECT는 변동 함수라서 파일이 무거워질 수 있다.
$C:$C)는 계산량을 크게 늘린다. 가능하면 실제 데이터 범위로 제한한다. 예: $C$2:$C$5000 형태로 최적화한다.6. 조건부 집계 우회 2: 동적 배열(365) REDUCE·MAP
Microsoft 365 환경에서는 REDUCE, MAP, BYROW 등을 조합해 가독성을 높이고 중복 계산을 줄일 수 있다. 시트 목록이 A2:A13, 조건이 E1, 조건열이 각 시트 C2:C5000, 합계열이 D2:D5000인 경우 다음과 같이 작성한다.
=LET( S, $A$2:$A$13, crit, $E$1, REDUCE( 0, S, LAMBDA(acc, s, acc + SUM(FILTER(INDIRECT("'" & s & "'!D2:D5000"), INDIRECT("'" & s & "'!C2:C5000")=crit)) ) ) ) 여러 조건이 있다면 FILTER 안의 조건을 곱셈 또는 * 로 결합하거나, 다중 비교를 (조건1)*(조건2) 형식으로 확장한다.
7. 조건부 집계 우회 3: SUMPRODUCT 다중 조건
INDIRECT와 SUMPRODUCT를 결합하면 다중 조건 집계도 가능하다.
=SUMPRODUCT( (INDIRECT("'" & $A$2:$A$13 & "'!C2:C5000")=$E$1)* (INDIRECT("'" & $A$2:$A$13 & "'!B2:B5000")=$F$1)* INDIRECT("'" & $A$2:$A$13 & "'!D2:D5000") ) 이 방식은 가독성이 떨어질 수 있으므로 LET으로 중간 변수를 두어 정리하면 유지보수성이 개선된다.
8. 표(테이블)·이름정의와 3D 참조의 궁합
엑셀 구조화된 참조(표, Table) 이름은 3차원 범위로 직접 결합되지 않는다. 그러나 각 시트에 동일한 이름의 이름정의를 만들고 같은 위치를 가리키게 하면 다음과 같은 패턴이 가능하다.
- 각 시트에 LocalName이라는 이름정의를 만들고 해당 시트의 D2:D500을 가리키게 한다(시트별 지역 이름).
- 3D SUM으로 묶는다.
=SUM(Jan:Dec!LocalName) 이 방식은 동일 구조 유지가 핵심이다. 구조가 바뀌면 즉시 동기화해야 한다.
9. Power Query로 구조가 다른 시트 병합
시트별 열 구조가 조금씩 다르거나 다수의 기준으로 정교한 집계가 필요하면 Power Query로 각 시트를 불러와 Append(세로 결합) 후 피벗 집계를 권장한다.
- 데이터 탭 → 데이터 가져오기 → 통합 문서에서.
- 대상 시트 범위를 선택하고 쿼리로 로드한다.
- 쿼리 편집기에서 열 정리 및 유형 지정 후 Append로 결합한다.
- 필요 시 피벗 열을 사용하여 조건 집계한다.
Power Query는 대용량 데이터에서도 계산 안정성이 높고 재생성·자동화에 유리하다.
10. VBA로 3D 합계 자동화(선택)
정교한 제어가 필요하거나 3D 참조와 조건부 집계를 혼합하려면 VBA로 루프를 도는 방법이 있다. 아래 예시는 경계 시트 사이의 모든 시트에서 B2를 합산한다.
Function Sum3D(startSheet As String, endSheet As String, addr As String) As Double Dim ws As Worksheet, flag As Boolean flag = False For Each ws In ThisWorkbook.Worksheets If ws.Name = startSheet Then flag = True If flag Then Sum3D = Sum3D + ws.Range(addr).Value If ws.Name = endSheet Then Exit For Next ws End Function
' 시트에서 사용: =Sum3D("_START","_END","B2")
11. 공통 오류와 해결책
| 증상 | 원인 | 해결 |
|---|---|---|
#REF! 발생 | 3D 범위 내 시트 삭제 또는 이름 변경 | 경계 시트 사용, 삭제 전 시트 복구, 이름 변경 시 수식 업데이트 |
| 합계가 예상보다 큼/작음 | 시트 탭 순서가 달라 범위에서 누락 또는 과포함 | 경계 시트로 고정, 포함 시트 탭을 경계 사이로 이동 |
| 계산이 느림 | INDIRECT·대용량 전체열 참조 | 정해진 범위로 축소, LET로 중복 참조 축소, 필요 시 Power Query 대체 |
| 조건부 집계가 동작하지 않음 | SUMIFS 등은 3D 비지원 | INDIRECT+SUMPRODUCT, 동적 배열 REDUCE, Power Query 사용 |
| 텍스트가 숫자로 인식되지 않음 | 시트별 데이터 형식 불일치 | VALUE 적용 또는 Power Query에서 형식 강제 지정 |
12. 실무 템플릿: 월별 비용 합계 대시보드
전제: 각 월 시트(Jan~Dec) A열에 계정과목, B열에 금액이 존재하며 동일 레이아웃이다. 요약 시트에서 특정 계정과목(셀 E1)의 연간 합계를 구한다.
' 단순 동일 위치 합계(계정과목이 동일한 셀에 위치하는 구조) =SUM(Jan:Dec!B10)
' 조건부(계정과목 매칭 필요): 시트 목록 A2:A13, 조건 E1
=SUMPRODUCT(SUMIF(INDIRECT("'" & $A$2:$A$13 & "'!$A$2:$A$5000"), $E$1,
INDIRECT("'" & $A$2:$A$13 & "'!$B$2:$B$5000")))
월 시트가 추가될 수 있으면 경계 시트를 사용한다. 동일 위치 합계라면 다음으로 단순화 가능하다.
=SUM(_START:_END!B10) 13. 성능 최적화 체크리스트
- INDIRECT 사용 시 범위를 제한한다(전체 열 지양)한다.
- 동일 참조를 LET로 저장해 중복 연산을 줄인다.
- 가능하면 3D SUM/AVERAGE 등 네이티브 함수를 우선한다.
- 대용량·다조건은 Power Query로 전환한다.
- 계산 옵션은 필요 시 수동으로 전환하고 최종에 다시 자동으로 복구한다.
14. 모범 설계: 시트 구조 표준화
3차원 참조의 성패는 레이아웃 표준화에 달려 있다. 모든 시트에서 헤더, 열 순서, 데이터 형식을 동일하게 유지하면 집계 수식은 간결해진다. 다음 표는 표준화 예시이다.
| 항목 | 규칙 | 비고 |
|---|---|---|
| 헤더 행 | 1행 고정, 동일 명칭 | 필터 가능 |
| 키 열 | A열에 코드, B열에 명칭 | VLOOKUP/XLOOKUP 호환 |
| 금액 열 | D열 고정 | 3D SUM 범위 고정 |
| 데이터 형식 | 통화/숫자/날짜 일관 | 오류 감소 |
15. 시트 이름 관리 팁
- 시트 이름에 공백·특수문자가 있으면 항상 작은따옴표로 감싼다.
- 경계 시트는 맨 앞·맨 뒤에 고정하고 이름은 눈에 띄게 한다(_START, _END)한다.
- 시트 목록 범위는 정의 이름으로 관리한다. 예: SheetList라는 이름에 $A$2:$A$13을 지정하면 다음처럼 간결해진다.
=SUMPRODUCT(SUMIF(INDIRECT("'" & SheetList & "'!$C$2:$C$5000"), $E$1, INDIRECT("'" & SheetList & "'!$D$2:$D$5000"))) 16. 체크리스트: 어떤 방법을 쓸 것인가
| 상황 | 권장 방법 | 장점 | 주의점 |
|---|---|---|---|
| 동일 위치 단순 합계 | 3D SUM + 경계 시트 | 빠름, 유지보수 쉬움 | 시트 순서 의존 |
| 조건부 합계 1~2개 | INDIRECT + SUMIF/SUMPRODUCT | 구현 쉬움 | 변동 함수, 성능 주의 |
| 다조건·대용량 | Power Query | 강력, 재현성 높음 | 초기 설정 필요 |
| 반복적 맞춤 계산 | VBA 사용자 함수 | 유연성 높음 | 보안 정책 고려 |
17. 테스트 데이터로 바로 검증하기
아래와 같이 샘플을 구성하고 결과가 의도대로인지 검증한다.
- 빈 통합 문서에 _START, Jan, Feb, Mar, _END 시트를 만든다.
- 각 월 시트의 B2에 10, 20, 30을 입력한다.
- 요약 시트에서
=SUM(_START:_END!B2)를 입력하고 60이 나오는지 확인한다. - Jan과 Feb 사이에 Jan2를 추가하고 B2=5를 입력한다. 합계가 65로 자동 갱신되는지 확인한다.
18. 자주 헷갈리는 규칙 요약
- 콜론(:)은 시트 범위와 셀 범위 양쪽에 쓰인다. 예:
Jan:Dec!B2:B13이다. - 시트 탭 순서가 결과를 좌우한다. 보기상 위치가 아닌 탭의 실제 순서를 확인한다.
- 3D는 배열 연산이나 조건부 함수와 직접 결합되지 않는다.
FAQ
SUMIFS를 3차원 참조와 함께 쓸 수 있나?
직접은 불가능하다. INDIRECT와 SUMIF/SUMPRODUCT 조합 또는 Power Query로 대체한다.
시트가 매우 많아 INDIRECT가 느리다. 대안은?
Power Query로 통합한 뒤 피벗 테이블로 집계하는 방법을 권장한다. 또는 VBA 사용자 함수를 사용한다.
시트 이름을 자주 바꾸는데 수식이 깨진다.
경계 시트를 사용하고, 집계 대상 시트를 경계 사이에만 추가·이동한다. 시트 목록 기반 우회 공식을 쓰는 경우 목록을 정의 이름으로 관리한다.
구조화된 표(Table) 열 참조를 3D로 합산할 수 있나?
직접 결합은 불가하다. 시트별 동일 이름정의를 만들어 3D SUM을 적용하거나, Power Query로 통합한다.
Google 스프레드시트에서도 3D 참조가 가능한가?
동일 구문은 지원하지 않는다. QUERY·ARRAYFORMULA·INDIRECT 조합 또는 AppSheet/Apps Script 기반으로 우회한다.