메뉴

엑셀 상위 목록에 종속되는 이중 목록상자 만들기

by 랄라곰
읽는 시간 3분 최종 수정 2026.08.13 조회수 260

하위 목록 범위를 상위 항목과 같은 이름으로 정의한 뒤, 데이터 유효성 검사 원본에 =INDIRECT($C4) 를 넣으면 상위 선택에 따라 목록이 바뀝니다.

드롭다운 목록은 오타를 막고 입력을 통일해 줍니다. 여기에 한 걸음 더 나아가 상위 항목을 고르면 하위 목록이 따라 바뀌도록 만들면, 항목이 많아도 고르기 쉬워집니다.

종속 드롭다운 INDIRECT 함수 — 대분류 선택에 따라 세부항목 목록이 바뀌는 종속 드롭다운 만들기입니다.

1. 기본 드롭다운 만들기

  1. 목록에 넣을 항목을 시트 한쪽에 적고, 범위를 선택한 뒤 Ctrl + T 로 표로 바꿉니다. 표로 만들어 두면 나중에 항목을 추가해도 목록에 자동으로 반영됩니다.
    드롭다운에 넣을 소속 항목을 표로 만든 화면
    목록 항목을 표로 지정합니다.
  2. 드롭다운을 넣을 범위(C4:C11)를 선택하고 [데이터] - [데이터 유효성 검사] 를 누릅니다. [설정] 탭에서 제한 대상을 '목록' 으로 고르고, 원본에 머리글을 뺀 값 범위(G4:G5)를 지정한 뒤 [확인]을 누릅니다.
    데이터 유효성 검사에서 제한 대상을 목록으로 지정하는 화면
    제한 대상을 '목록'으로 지정합니다.
  3. 선택한 범위에 드롭다운이 생겼습니다.
    소속 열에 드롭다운 목록이 적용된 표
    드롭다운 목록이 완성되었습니다.
오빠두Tip : 목록을 펼칠 때 ▼ 를 클릭하지 않아도 됩니다. 셀을 고른 상태에서 Alt + ↓ 를 누르면 목록이 바로 펼쳐집니다.

2. 이중 종속 드롭다운 만들기

C열의 '소속'을 고르면 D열의 '본부'가 그에 맞게 바뀌도록 만들어 보겠습니다. 핵심은 하위 목록의 이름을 상위 항목 이름과 똑같이 정의하는 것입니다.

  1. 하위 목록을 상위 항목별로 각각 만듭니다. '서울사무소' 아래에 그 소속 본부들을, '제조공장' 아래에 그 본부들을 적고, 각 범위를 Ctrl + T 로 표로 만듭니다.
  2. 각 표에서 머리글을 뺀 값 범위를 선택하고, 화면 왼쪽 위 이름 상자표 머리글과 똑같은 이름(서울사무소 · 제조공장)을 입력해 이름을 정의합니다.
    주의 : 이름이 상위 목록의 값과 한 글자라도 다르면 INDIRECT 가 그 이름을 찾지 못해 목록이 비어 버립니다. 띄어쓰기까지 똑같이 맞추세요.
  3. D열의 드롭다운 범위(D4:D11)를 선택하고 [데이터] - [데이터 유효성 검사] 에서 제한 대상을 '목록', 원본에 아래 수식을 넣습니다.
    =INDIRECT($C4)

    "원본은(는) 현재 오류 상태입니다. 계속하시겠습니까?" 가 나오면 [예] 를 누릅니다. C4 가 아직 비어 있어서 나오는 안내입니다.

    데이터 유효성 검사 원본에 INDIRECT 함수를 입력한 화면
    원본에 =INDIRECT($C4) 를 입력합니다.
  4. 이제 소속을 고르면 그에 맞는 본부만 목록에 나타납니다.
    소속 선택에 따라 본부 목록이 달라지는 종속 드롭다운
    상위 선택에 따라 하위 목록이 바뀝니다.
오빠두Tip : $C4 처럼 열만 고정하는 것이 중요합니다. 열을 고정하지 않으면 아래로 내려갈 때 참조가 옆으로 밀리고, 행까지 고정하면 모든 행이 4행의 값만 바라보게 됩니다.

3. 삼중 이상으로 늘리기

방법은 똑같습니다. E열의 '팀' 목록을 본부별로 만들어 표로 지정하고, 각 범위의 이름을 본부 이름과 똑같이 정의합니다.

본부별 팀 목록을 각각 표로 만든 화면
본부마다 팀 목록을 표로 만듭니다.
이름 상자에 표 머리글과 같은 이름을 정의하는 화면
머리글을 뺀 범위에 같은 이름을 정의합니다.

그다음 E열 범위(E4:E11)의 유효성 검사 원본에 한 칸 앞 열을 참조하는 수식을 넣습니다.

=INDIRECT($D4)
소속 본부 팀으로 이어지는 삼중 종속 드롭다운이 완성된 표
소속 → 본부 → 팀으로 이어집니다.
주의 : 이 방식은 이름이 겹치지 않는다는 전제에서만 동작합니다. [서울사무소]와 [제조공장] 아래에 같은 이름의 [마케팅본부]가 있다면 이름을 하나만 정의할 수 있어, 둘 중 한쪽에서만 하위 목록이 나옵니다.
관련 게시글
댓글 22
4.9 (14개 평가)
엑셀은즐거워
엑셀은즐거워 2022.11.30 17:49
참 필요한 기능이지만..ㅎㅎ
unique 함수가 지원되지 않는 365 이전버전에서는 이렇게 목록을 따로 관리하는게 여간 불편하지 않을 수 없습니다..ㅜ
레키타임
레키타임 2022.12.02 17:53
최고~~~~
솝휘
솝휘 2023.05.12 04:06
이중 드롭다운은 처음 알게 되었어요
yj11
yj11 2023.08.28 11:48
감사합니다~
종이종이
종이종이 2023.09.29 11:45
아직 기본적인 사용밖에 못하지만, 많은 도움이 됐습니다!
밍디몬
밍디몬 2023.10.13 11:12
똑같이 ctrl + T로 표로 만들고, 이름 정의를 하려고 하면 자꾸 에러가 뜨는데 혹시 원인이 무엇일까요 ??
ERROR
오빠두엑셀
오빠두엑셀 2023.10.14 23:32
안녕하세요. 이름을 정의할 때에는 몇가지 지켜야 할 규칙이 있습니다.
아래 내용을 참고해주시고, 더 자세한 설명은 진짜쓰는 실무엑셀 교재 93쪽을 참고해보세요 :)
감사합니다.
Screenshot_2
지나가던아이
지나가던아이 2024.07.05 14:29
잘 배웠습니다. 질문 한가지만 드리자면... 이미 입력되어 있는 데이터에서 상위계열을 변경했을때, 그 하위계열의 내용이 자동적으로 리셋되는 방법은없을까요??
sonic7
sonic7 2026.06.18 13:20
유효성 검사는 기존 값을 자동 삭제하는 기능은 없습니다. VBA의 워크시트 체인지  이벤트를 이용해보세요
i****
i**** 2024.07.12 10:10
드롭다운 목록이 8개 이상될때 목록크기를 늘릴수 있는 방법이 궁금합니다.
실무엑셀 책에 내용이 있는지요?
오빠두엑셀
오빠두엑셀 2024.07.12 23:54
안녕하세요! 오빠두엑셀 전진권 강사입니다.
엑셀에서 데이터 유효성 검사로 생성한 드롭다운 목록의 기본 표시 개수는 8개로 고정되어 있습니다. 이 개수를 직접적으로 늘리는 방법은, 현재는 아쉽게도 제공되지 않습니다.🙇‍♂️
다만, 개발도구의 유저 컨트롤 중, 리스트박스를 사용하면 더 많은 개수의 목록을 표시할 수 있으니, 필요하시다면 한번 사용해보시길 바랍니다.
답변이 도움이 되었길 바랍니다. 감사합니다!
강민준🤗
강민준🤗 2024.08.10 09:58
좋은 강의 감사합니다🙇‍♂️
적기
적기 2024.11.06 12:46
안녕하세요 혹시 범위가 아래와 같을때는 어떤식으로 하면 될까요??
소속 본부
서울사무소 마케팅본부
서울사무소 영업본부
서울사무소 경영지원본부
제조공장 생산본부
제조공장 개발본부
오빠두엑셀
오빠두엑셀 2024.11.08 19:09
안녕하세요.
다중조건 목록상자, 표로 간단하게 만들기 :: 이중유효성 검사 - 오빠두엑셀
위 영상 강의를 한번 확인해보시길 바랍니다. :)
감사합니다.
스크랩 완료