
엑셀 드롭다운 목록 자동 업데이트 — UNIQUE·SORT로 중복 제거·정렬·연동 목록까지
요약: 드롭다운의 핵심은 표(ListObject)와 동적 배열이다. 원본을 표로 만든 뒤 UNIQUE로 중복을 제거하고 SORT로 정렬, FILTER로 빈값을 제외해 **깨끗한 이름 범위**로 만든다. 유효성 목록이 그 이름을 참조하면, 원본이 늘어나도 드롭다운이 자동으로 갱신된다. 부모/자식 **연동 목록**도 같은 방식으로 확장 가능하다.
1) 왜 표+동적 배열인가
일반 범위는 행이 추가될 때 유효성 목록이 비며 오류가 나기 쉽다. 반면 Ctrl+T로 만든 표는 자동 확장되고, UNIQUE/SORT/FILTER 조합은 변화에 따라 목록을 즉시 갱신한다. 이 동적 범위를 이름으로 저장해 유효성에 연결하면 유지보수가 거의 필요 없다.
2) 빈값 제거·중복 제거·정렬
=SORT(UNIQUE(FILTER(ItemsTbl[항목], ItemsTbl[항목]<>"")))
위 수식을 시트의 보조 영역에 두거나, 이름 관리자에서 dd_Items라는 이름으로 정의한다. 가나다 역순이 필요하면 SORT(…,-1)을 사용한다.
3) 데이터 유효성에 연결
대상 입력 범위를 선택하고 데이터 → 데이터 유효성 → 설정 → 허용: 목록에서 =dd_Items를 입력한다. 이제 원본 표에 값이 추가/삭제되어도 드롭다운이 자동으로 업데이트된다.
4) 연동(종속) 드롭다운
부모가 분류, 자식이 세부라면 아래처럼 이름을 만든다. (부모 선택 셀은 B2라고 가정)
dd_Sub := SORT(UNIQUE(FILTER(Tbl[세부], Tbl[분류]=B2)))
자식 드롭다운의 유효성 원본에 =dd_Sub를 넣으면 부모 선택에 따라 자동으로 바뀐다. 빈 결과는 IFERROR(…, "")로 처리한다.
5) 구버전 대안(UNIQUE 없는 경우)
- 고급 필터: 데이터 → 고급 → 고유 레코드만 체크 → 결과 범위를 이름
dd_Items로 지정. - 피벗 테이블: 행 레이블 목록을 값으로 출력 후 이름 지정.
- Power Query: 데이터 → 테이블/범위에서 → 중복 제거 → 닫기&로드(연결만) → 이름 참조.
6) 운영 팁·오류 방지
- 원본 표의 빈행/공백을 미리 정리하면(데이터 유효성,
TRIM/CLEAN) 드롭다운이 깔끔해진다. - 목록에 수식이 섞여 있다면 값 붙여넣기로 확정 후 사용하자.
- 머지된 셀(병합)은 유효성 오류의 주범이다. 가능한 피하고, 셀 가운데 맞춤(Across Selection)을 권장.