티스토리 뷰

엑셀의 데이터 유효성 검사 기능을 이용하여 이중 콤보 박스를 삽입해 보자.
이전 게시물의 목록 작성과 이름 정의에 이은 핵심 작업, 데이터 유효성 작업이다.

[엑셀 문답] 이중 데이터 유효성 검사에 이름 정의 활용-1 :
http://secstart.tistory.com/815

... 이어지는 마늘빵 답변 ...

3. 데이터 유효성 검사로 상위 메뉴 작업

이제, 데이터 유효성 검사 기능으로 목록을 콤보 박스로 넣어 보자.

[그림3] 엑셀 데이터 유효성 검사 실행[그림3] 엑셀 데이터 유효성 검사 실행



1) 1차 콤보 박스가 삽입될 F5 셀을 선택한다.
2) 리본 메뉴 > 데이터 탭 > 데이티 유효성 검사 를 실행한다. 창의 크기에 따라 달리 보일 수 있다.

[그림4] 엑셀 데이터 유효성 검사 1차 설정[그림4] 엑셀 데이터 유효성 검사 1차 설정



3) 데이터 유효성 창의 설정 탭에서 '제한 대상' 을 '목록' 으로 선택한다.
4) '드롭다운 표시' 는 반드시 체크하여야 셀에서 콤보 박스 형태를 볼 수 있다.
5) '원본' 으로 계정과목( 상위 메뉴 ) 목록의 범위인 C4:D4 를 설정한다.

[그림5] 1차 메뉴가 콤보 박스로 삽입된 셀[그림5] 1차 메뉴가 콤보 박스로 삽입된 셀



6) '확인' 으로 종료하면 F5 셀에 콤보 박스가 삽입되고 '계정과목' 목록이 나열된다.

4. 데이터 유효성 검사로 하위 메뉴 작업

세부 항목을 콤보로 생성해 보자. 이 단계에서는 INDIRECT 함수를 사용하여야 한다. 이름 정의한 이유도 밝혀진다.

1) 2차 콤보 박스가 삽입될 G5 셀을 선택한다.
2) 데이터 유효성 검사을 실행한다.

[그림6] 2차 메뉴의 데이터 유효성 검사 설정[그림6] 2차 메뉴의 데이터 유효성 검사 설정



3) 설정 탭에서 '제한 대상' 을 역시 '목록' 으로 하고 '드롭다운 표시' 를 체크한다.
4) '원본' 으로 =INDIRECT( F5 ) 를 입력한다. 이는 상위 콤보가 입력된 F5 셀의 결과로 간접 참조 한다는 것이다.
예로 F5 셀에 '복리후생비' 가 설정되었다면, =INDIRECT( "복리후생비" ) 로 처리되고
'이름 정의' 되어 있는 '복리후생비' 의 원본 범위인 D5:D8 이 데이터 유효성 의 '원본' 으로 사용되는 것이다.



이것이 이름 정의한 이유이다.

5) '확인' 으로 종료하면 G5 셀에 2차 콤보 박스( 드롭다운 메뉴 )가 삽입되고 F5 에 설정된 상위 메뉴에 따른 하위 메뉴가 표시된다.

콤보 박스가 삽입된 셀은 DEL 키로 데이터를 삭제할 수 있지만, 삽입된 콤보는 제거되지 않는다.
콤보 박스를 제거하려면 '데이터 유효성' 창의 왼쪽 아래의 '모두 지우기' 버튼으로 삭제할 수 있다.

참고로, 상위 메뉴가 공백일 경우 하위 메뉴는 표시되지 않는다. 하위 메뉴는 상위 메뉴명으로 원본을 얻기 때문이다.
.....

엄밀히 말하면, 데이터 유효성 검사로 삽입되는 드롭다운 표시는 양식의 콤보 박스와는 다르다. 셀을 선택하여야 콤보가 보이기도 한다. 이상의 이중 콤보 박스 작업은 텍스트 문자열을 참조에 활용할 수 있는 엑셀 간접 참조 함수인 INDIRECT 가 핵심임을 기억하자.

추가로, 작업을 하다보면 목록은 추가되거나 삭제될 수 있다. 당연히 그 범위도 변경된다. 이를 쉽게 갱신하는 방법은 1차, 2차 메뉴 목록을 모두 이름 정의하여 사용하고, 이를 이름 관리자에서 편집하는 것이다. 하나더, F5:G5 의 콤보를 아래의 셀들에도 추가하는 방법은 채우기 핸들을 이용하여 복사하는 것이다. 참고하세요. ...

[컴활 1급] 텍스트 문자열로 셀 참조, 엑셀 INDIRECT 함수 :
http://secstart.tistory.com/666

마늘빵.


댓글