- 최초 작성일: 2001-03-22
- 최종 수정일: 2026-09-29
- 조회수: 24 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: When Indirect Meets Validation
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
강좌 제목이 무슨 영화 제목 같습니다. ^^ (나날이 감성이 풍부해져 가는 Exceller!)
몇 강좌 전(X0188)에 Indirect 함수에 대해 소개해 드린 적이 있습니다. Indirect 함수는 문자열을 셀 참조 형식으로 리턴해 주는 함수라고만 설명을 드렸더니 좀더 자세히 알려달라는 분이 몇 분 계셨습니다. (표 1)과 같은 데이터가 있습니다.
When Indirect Meets Validation
핵심 요약
- 표의 지점명을 이름으로 정의해 두면 이름 자체를 수식의 범위 참조로 사용할 수 있습니다.
- 유효성 검사의 목록으로 지점을 선택하게 하고 선택된 텍스트를 INDIRECT에 전달하면 해당 이름 범위를 동적으로 참조할 수 있습니다.
- SUM(INDIRECT(선택셀))처럼 구성하면 사용자가 지점을 바꿀 때마다 그 지점의 분기별 실적 합계가 자동으로 계산됩니다.
(표 1) 지점별/분기별 경상이익
| 1/4분기 | 2/4분기 | 3/4분기 | 4/4분기 | |
| 강동 | 132 | 683 | 63 | 374 |
| 강서 | 165 | 347 | 347 | 730 |
| 강남 | 725 | 405 | 350 | 222 |
| 강북 | 381 | 993 | 170 | 660 |
| 수원 | 491 | 785 | 277 | 3 |
| 성남 | 102 | 469 | 94 | 974 |
| 안양 | 113 | 827 | 695 | 591 |
| 강릉 | 619 | 927 | 726 | 694 |
| 원주 | 321 | 492 | 894 | 520 |
| 춘천 | 342 | 146 | 884 | 743 |
| 대전 | 234 | 988 | 819 | 373 |
| 부산 | 528 | 453 | 634 | 977 |
| 대구 | 8 | 187 | 635 | 27 |
| 광주 | 395 | 508 | 27 | 166 |
| 제주 | 880 | 913 | 902 | 431 |
이제 아래의 지점 선택 셀(빨간색 셀)로 셀 포인터를 이동시키면 콤보박스가 나타날 것입니다. 이 때 원하시는 지점을 선택해 보세요.
| 지점 선택 | 이익계 |
=SUM(INDIRECT(B41))
해당 지점의 경상이익계가 구해질 것입니다. 이것은 Indirect 함수와 이름 정의, 그리고 Validation, 즉 유효성 검사를 조합해서 사용한 것입니다.
(1) (표 1) 영역 내의 임의의 셀을 클릭합니다.
(2) 삽입-이름-만들기 메뉴를 선택합니다.
(3) 이름 만들기 대화상자가 나타나는데 첫 행, 왼쪽 열 항목 앞에 체크를 하고 확인 버튼을 클릭합니다.
(4) 이제 아무 셀이나 선택한 다음,
=sum(강동)
이라고 입력하고 Enter키를 쳐 보세요.
(5) 이상의 것을 약간 응용하여 Indirect 함수를 함께 사용하시면 위와 같은 형태가 되는 것입니다.
다음 시간에…
정리 — When Indirect Meets Validation
| 구분 | 내용 |
|---|---|
| 이름 만들기 | 표 안의 셀 선택 후 삽입 - 이름 - 만들기에서 첫 행, 왼쪽 열 체크 |
| 이름 사용 | 이름 자체를 범위로 사용 (예: =sum(강동)) |
| INDIRECT 응용 | =SUM(INDIRECT(B41)) (B41은 지점을 선택하는 셀) |
| 유효성 검사 | 지점 선택 셀에 목록을 지정하여 콤보박스로 선택 |
자주 묻는 질문 (FAQ)
Q1. INDIRECT 함수는 어떤 함수인가요?
문자열을 셀 참조 형식으로 돌려주는 함수입니다. 이름 정의와 함께 쓰면 문자열로 된 이름을 실제 범위로 바꿔 참조할 수 있습니다.
Q2. 이름은 어떻게 한꺼번에 만드나요?
표 안의 임의의 셀을 선택하고 삽입 - 이름 - 만들기에서 첫 행과 왼쪽 열 항목에 체크한 뒤 확인을 누르면 지점명이 각 행의 이름으로 정의됩니다.
Q3. 지점을 바꾸면 합계도 자동으로 바뀌나요?
네, 유효성 검사 목록으로 지점을 선택하고 SUM과 INDIRECT를 조합하면 선택한 지점의 분기별 합계가 자동으로 구해집니다.
마치며
INDIRECT 함수와 이름 정의, 유효성 검사를 조합하면 선택에 따라 바뀌는 계산표를 만들 수 있습니다. VBA에 대한 기초 지식을 공부하실 분은 아이엑셀러 닷컴 사이트 상단 메뉴에서 [Excel 강의] - [Excel 입문]을 먼저 보시면 이해하기 쉽습니다.