- 최초 작성일: 2006-03-08
- 최종 수정일: 2026-09-26
- 조회수: 24 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: 배열 수식에서 3차원 참조하기
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
원본 강의의 질문과 설명, 예제, 단계별 이미지를 원본의 흐름에 맞춰 복원했습니다.
배열 수식에서 3차원 참조하기
핵심 요약
- 배열 수식에서 3차원 참조하기의 핵심 기능과 실제 활용 방법을 단계별로 살펴봅니다.
- 배열수식, 3차원참조, INDIRECT를 중심으로 원본 강의의 예제와 수식, 설정 방법을 확인할 수 있습니다.
- 원본 강의의 설명과 예제 흐름을 따라가며 실무에서 활용할 수 있는 방법을 익힐 수 있습니다.
강의 내용
예제 파일을 내려받으려면 여기를 클릭하세요.
Exceller 님의 강의(?) 를 신봉하는 차원으로 보구 있습니다.
저도 성이 안동 권씨인지라 더욱이 반갑습니다…
"Sumif 함수에서 3차원 참조하기" 파일을 보구 나름대로 응용해 보던 중
막히는 부분이 생겼거든요? Exceller 님의 강좌5 에서(X0217),
거기에선 sheet1,sheet2,sheet3 시트별로 옆의 데이터가 있잖아요
| 지점명 | 매출액 |
|---|---|
| 강동 | 790 |
| 강서 | 829 |
| 강남 | 256 |
| 강북 | 959 |
| 부산 | 837 |
| 대구 | 675 |
| 대전 | 451 |
| 광주 | 32 |
| 제주 | 899 |
그리고 지점이"강남"인 곳의 매출액을 구할 때 함수 구문이
=SUM(SUMIF(INDIRECT(B88:B90&"!a2:a10"),B96,(INDIRECT(B88:B90&"!b2:b10"))))
이런 형태로 배열 수식으로 구한다는걸 알았습니다. 그런데 만약 지점에
| 지점명 | 미스터김 | 미스터리 | 미스터박 | 미스터권 | 미스터김 |
|---|---|---|---|---|---|
| 강동 | 7900 | 8000 | 8100 | 8100 | 미스터리 |
| 강서 | 8500 | 8700 | 8500 | 8600 | 미스터박 |
| 강남 | 1000 | 1100 | 1000 | 1200 | 미스터권 |
| 강북 | 1250 | 1400 | 1250 | 1450 | |
| 부산 | 3500 | 3700 | 3600 | 3600 | |
| 대구 | 2200 | 2400 | 2250 | 2400 | |
| 대전 | 2400 | 2500 | 2550 | 2600 | |
| 광주 | 5400 | 5500 | 5500 | 5800 | |
| 제주 | 2600 | 2900 | 2700 | 2700 |
이런 데이터가 시트별로 있다고 가정하고…제가 나름대로 정리를 해보았는데요
전 Exceller 님께서 만든 함수식 그대로 적용하면 되겠구나 하고… 이렇게
시트 이름을 정해주고..
=SUM(VLOOKUP(B33,INDIRECT(I26:I28&"!A1:E10"),C31,FALSE))
이런 식으로vlookup 함수를 적용해 봤더니 값이 오류가 납니다.
이걸 Sumif 함수를 사용할 수도 없는 걸로 알고 있습니다.
이런 때에는 어떻게 해결해야 하는지요?
알려주시면 감사하겠으며, 늘 하시는 일에 성공이 깃들길 바랍니다.
강의를 신봉하는 차원에서 보신다니 한편으론 반갑고 다른 한편으론
부담이 가기도 하고 그렇습니다. ^^
3차원 참조(3D reference)란 다른 워크시트의 내용을 참조하는 것을 말합니다.
Sheet1~Sheet3 시트를 보면, 다음과 같은 형태의 데이터가 들어있습니다.
이것을... 지점명뿐만 아니라 조건을 한 가지 더 추가해서, 지점과 영업사원을
선택하면 Sheet1~Sheet3 시트의 내용들을 모두 합산할 수 없겠느냐 하는 것입니다.
아래에서 지점명과 영업사원을 다양하게 선택함에 따라 매출액이 어떻게 변하는지
확인해 보시기 바랍니다.
| 지점명 | 영업사원 | 매출액 |
|---|---|---|
| 3 | 4 | =SUM(SUMIF(INDIRECT("Sheet"&{1,2,3}&"!"&ADDRESS(지점명,영업사원명)),">0")) |
| =B81+1 | =C81+1 |
어떻습니까! 잘 되지요?
이미 알고 계신 바와 같이, Indirect 함수를 사용하면 3차원 참조를 할 수가 있습니다.
사용된 수식은 다음과 같습니다.
{=SUM(SUMIF(INDIRECT("Sheet"&{1,2,3}&"!"&ADDRESS(지점명,영업사원명)),">0"))}
여기서 Indirect 함수의 인수로 세 개의 시트명을 지정하기 위해 중괄호({})를
이용하여 배열 형태로 전달한 것과, 각 시트에서 해당 정보가 어디에 있는지를
알려주기 위해 Address 함수를 중첩해서 사용한 것을 눈여겨 보시기 바랍니다.
그리고 '지점명'과 '영업사원명'은 두 개의 콤보 상자와 연결되어 있는 셀에
'이름 정의'를 해 둔 것입니다. 이렇게 하면 중간에 행이나 열이 삽입되거나
삭제되어도 변함없이 유효한 값을 가져올 수 있습니다.
배열의 형태로 자료를 계산해야 하므로 Ctrl + Shift + Enter 키를 함께 눌러
수식을 마무리(즉, 배열 수식) 한다는 것을 잊으시면 안되겠지요?
다음에 또…