- 최초 작성일: 2014-04-23
- 최종 수정일: 2026-09-21
- 조회수: 34 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: 커스터머 후렌들리(?)한 ListBox 연동 차트 만들기
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
// 메일 하나
Dear Steve Quan,
I would like to express my sincere gratitude to what you have shared with us on BBS during the last three months.
As one of the most popular-used tools in daily work, Excel can help us greatly improve work efficiency.
So far I've read all the lectures you shared on BBS, and I'm surprised to find that they are useful,
easy to understand, and most important, very interesting.
From your resume, I got to know that you are a very senior and professional Exceler.
It's my great honor to be one of your apprentice. Look forward one day you can arrange a training course to us.
Hope everything in China is OK! Thank you again!
북경 Division에서 근무하는 어느 분이 보내신 메일입니다.
이런 메일을 받으면 강좌를 진행하는 보람을 느낌과 동시에, '더욱 열심히 해야겠다'는 사명감이 생기기도 합니다.
谢谢.
우리가 차트를 작성하는 이유가 무엇일까요?
데이터의 흐름을 한 눈에 이해하고 직관적으로 파악하기 위함이 아닐까 생각됩니다.
모든 보고서가 그러하듯, 차트도 자료의 수요자 관점에서 생각해 보면 작성하기가 쉬워집니다.
그런 의미에서 오늘은 이런 차트를 한번 만들어 보았습니다.
왼쪽의 List Box에서 지역을 선택하면, 해당 지역의 데이터들이 차트에 자동으로 표시됩니다.
놀라운(?) 것은 단 한 줄의 VBA 코드도 사용하지 않았다는 사실!
(참고로, 브랜드명 이외의 데이터들은 모두 Dummy 데이터입니다)
엑셀 목록 상자(ListBox) 연동 차트 만들기
핵심 요약: VBA 없이 만드는 목록 상자 연동 차트
양식 컨트롤 목록 상자와 CHOOSE 함수만으로, 목록에서 지역을 고르면 브랜드별 월별 실적 차트 4개가 자동으로 바뀌는 차트를 만듭니다. VBA 코드는 한 줄도 사용하지 않습니다.
- 데이터 준비: 브랜드별·지역별 월별 실적을 준비합니다(Sheet1의 A7:M37 영역).
-
CHOOSE 함수: B2:B5 셀에
=CHOOSE($O$10,B8,…,B13)형태의 수식을 만들고 오른쪽으로 복사합니다. O10은 목록 상자에서 선택한 순번이 저장되는 셀입니다. - 차트 4개: 브랜드별로 A1:M1과 각 브랜드 행(A2:M2 ~ A5:M5)을 범위로 '묶은 가로 막대형' 차트를 만듭니다.
-
목록 상자: '개발 도구 - 삽입'의 양식 컨트롤 '목록 상자'를 그리고 입력 범위
Sheet1!$O$2:$O$7, 셀 연결Sheet1!$O$10을 지정합니다.
1. 데이터와 수식 준비
이런 차트를 어떻게 만들었는지 살펴보도록 하죠.
(1) 각 브랜드별 월별 실적 데이터를 준비합니다(Sheet1의 A7:M37 영역 참고).
(2) B2:B5 셀에 아래와 같은 수식을 작성하고 오른쪽으로 수식을 복사합니다.
B2: =CHOOSE($O$10,B8,B9,B10,B11,B12,B13) ← Laneige
B3: =CHOOSE($O$10,B16,B17,B18,B19,B20,B21) ← Mamonde
B4: =CHOOSE($O$10,B24,B25,B26,B27,B28,B29) ← Sulwhasoo
B5: =CHOOSE($O$10,B32,B33,B34,B35,B36,B37) ← IOPE
CHOOSE 함수는 Choose(index_num, value1, value2,…)와 같은 형식으로 사용하며,
목록 중에서 지정한 위치에 있는 항목을 구해줍니다.
예를 들어 =Choose(2, "Laneige", "Mamonde", "Sulwhasoo", "IOPE")라고 하면 결과값으로 Mamonde가 표시됩니다.
=CHOOSE(2, "Laneige", "Mamonde", "Sulwhasoo", "IOPE")
2. 브랜드별 차트 4개 만들기
(3) A1:M2 영역을 범위로 지정하고 "묶은 가로 막대형" 차트를 작성합니다.
(4) A1:M1, A3:M3 영역을 범위로 지정하고 "묶은 가로 막대형" 차트를 작성합니다.
(5) A1:M1, A4:M4 영역을 범위로 지정하고 "묶은 가로 막대형" 차트를 작성합니다.
(6) A1:M1, A5:M5 영역을 범위로 지정하고 "묶은 가로 막대형" 차트를 작성합니다.
이렇게 하면 Laneige, Mamonde, Sulwhasoo, IOPE 등 4개의 차트가 만들어집니다.
3. 목록 상자에 쓸 자료 입력
(7) 시트 내의 적당한 곳에 아래 그림과 같이 입력합니다.
이것은 목록 상자를 만들고 나서 사용되는 것으로
잠시 후에 다시 설명합니다.
참고: 지역 이름을 구하는 셀
예제 파일의 Sheet1에는 O10 셀(선택한 순번)과 함께 O12 셀에 =INDEX(O2:O7,O10) 수식이 들어 있어, 목록 상자에서 선택한 지역 이름(예: West)을 구할 수 있습니다.
4. 목록 상자 삽입과 서식 지정
(8) "개발 도구 - 삽입" 탭에서 "양식 컨트롤"에 있는 "목록 상자" 아이콘을 선택한 다음, 적당한 크기로 그려넣습니다.
(9) 목록 상자를 마우스 오른쪽 버튼으로 클릭하고 "컨트롤 서식" 메뉴를 선택합니다.
"컨트롤" 탭을 선택한 후, 각 항목을 아래와 같이 지정합니다.
물론 "입력 범위"와 "셀 연결"의 경우,
(7) 단계에서 자료를 어디에 입력했느냐에 따라
지정 위치는 달라지겠지요.
5. 배치와 서식으로 완성하기
(10) 끝으로, 목록 상자와 차트를 보기 좋게 배치하고 차트의 서식을 적당히 조정하여 완성합니다.
순서가 좀 깁니다만, 한두 번만 해보시면 이해하시리라 생각합니다.
직접 해 보시고, 잘 이해가 안 되는 부분이 있으면 질문하시기 바랍니다.
정리 — 구성 요소 한눈에 보기
| 구성 요소 | 하는 일 |
|---|---|
| 목록 상자(양식 컨트롤) | 지역 목록(입력 범위 O2:O7)을 보여 주고, 선택한 순번을 O10 셀(셀 연결)에 저장 |
| CHOOSE 함수(B2:M5) | O10의 순번에 해당하는 지역의 데이터를 골라 브랜드별 행(2~5행)에 채움 |
| 묶은 가로 막대형 차트 4개 | A1:M1과 브랜드 행(A2:M2 ~ A5:M5)을 원본으로 하므로 선택한 지역의 값이 자동으로 표시됨 |
| VBA | 사용하지 않음 — 수식과 양식 컨트롤만으로 구성 |
자주 묻는 질문 (FAQ)
Q1. VBA 없이 목록 상자로 차트가 바뀌게 하려면 어떻게 하나요?
양식 컨트롤의 '목록 상자'를 만들어 선택한 항목의 순번이 특정 셀(셀 연결)에 저장되게 하고, CHOOSE 함수가 그 순번에 해당하는 데이터를 골라 차트의 원본 범위에 채워 주게 하면 됩니다. 예제에서는 목록 상자의 셀 연결을 Sheet1!$O$10으로 지정하고 =CHOOSE($O$10,B8,B9,B10,B11,B12,B13) 같은 수식으로 지역별 데이터를 골랐습니다.
Q2. CHOOSE 함수는 어떤 일을 하나요?
CHOOSE(index_num, value1, value2,…) 형식으로 사용하며 목록 중에서 지정한 위치에 있는 항목을 구해 줍니다. 예를 들어 =CHOOSE(2,"Laneige","Mamonde","Sulwhasoo","IOPE")는 두 번째 항목인 Mamonde를 반환합니다.
Q3. 목록 상자의 '입력 범위'와 '셀 연결'에는 무엇을 지정하나요?
'입력 범위'에는 목록에 표시할 항목(예제에서는 지역 이름 East, West, South, North, Middle, All이 있는 Sheet1!$O$2:$O$7)을, '셀 연결'에는 선택한 항목의 순번이 저장될 셀(예제에서는 Sheet1!$O$10)을 지정합니다. 선택 유형은 '한 개'입니다. 자료를 어디에 입력했는지에 따라 지정 위치는 달라집니다.
마치며
오늘은 여기까지…