다중조건 목록상자 만들기
엑셀 항목정리의 기초! - 이중 유효성검사 목록상자 만들기
이 강의에서는 표 기능을 활용해 함수 없이도 동작하는 엑셀 다중조건 목록상자를 만드는 방법을 다룹니다. 가계부 입력 시트에서 계정과목과 소계정이 연동되도록 이중유효성 검사를 구성하고, 수입·지출 구분에 따른 아이콘 집합과 마지막셀 자동 이동 버튼까지 함께 적용해, 반복 입력 작업을 안정적으로 자동화하는 절차를 정리합니다.
실습자료를 준비했어요
수업에서 사용한 예제 파일과 보충 자료를 한 곳에 정리했습니다!👇
실습 가이드
강의 소개
이번 강의에서는 표 기능을 활용한 ‘엑셀 다중조건 목록상자’ 제작 방법을 살펴봅니다. 표 기능을 활용하면 이중유효성 목록상자를 함수 없이도 매우 간단하게 구현할 수 있습니다. 이번 예제에서는 다중조건 목록상자뿐 아니라 엑셀의 아이콘 집합 기능과 마지막셀 이동 버튼 제작 방법까지 함께 다룹니다.
이번 강의에서 다루는 핵심 내용은 다음 세 가지입니다.
- 가계부의 각 계정과목 선택 시, 소계정 항목이 자동으로 반영되는 이중유효성 검사 목록상자 만들기
- 수입/지출 항목에 따라 위/아래 화살표가 출력되는 아이콘집합 사용법
- 버튼을 클릭하면 시트의 마지막셀로 자동 이동하는 버튼 만들기
이번 강의에서 소개하는 표 기능 기반의 이중 유효성 목록상자는 다뤄야 할 항목 수가 많아질수록 다소 불편해질 수 있습니다.
따라서 항목이 많은 환경에서는 함수를 활용한 다중 데이터유효성 검사 목록상자를 사용하면 더 폭넓은 자동화가 가능합니다. 함수를 활용한 다중 데이터유효성 검사 목록상자에 대한 자세한 내용은 아래 관련 강의를 참고하세요.
1. 도형 옵션의 ‘변하지 않음’ 속성 설정
가계부 시트에서 셀 너비를 변경하면 해당 셀에 배치된 도형의 너비도 함께 변합니다. 이러한 동작을 막기 위해 셀 크기 변화와 무관하게 ‘도형’의 크기가 고정되도록 설정합니다.
따라서 이전 강의에서 만들었던 시트 이동용 ‘도형’의 속성을 변경해 주겠습니다.
도형을 선택한 뒤 [도형 서식]을 클릭합니다. 이어서 [도형 옵션]의 [속성] 항목에서 [변하지 않음]을 선택합니다.

다음으로 가계부의 입출금계좌, 계정과목 및 소계정 항목 관리를 위한 환경설정 시트를 작성합니다. 아래 예시를 참고할 수 있도록 정리했습니다.
예시를 참고하여 본인의 소득/지출 패턴에 맞게 계정과목과 소계정 항목을 작성해 보세요.
입출금계좌 및 계정과목 구분
| 입출금계좌 | 수입 | 지출 | 이동 |
| 국민은행-급여통장 | 회사급여 | 교통비 | 계좌이동(+) |
| 신한은행-생활비통장 | 주식배당금 | 식비 | 계좌이동(-) |
| 우리은행-비상금통장 | 기타소득 | 주거통신비 | 예적금(+) |
| 우체국-적금통장 | 건강문화비 | 예적금(-) | |
| 신한은행-Fun신용카드(7010) | 경조사회비 | ||
| 등등.. |
계정과목별 소계정 구분
| 회사급여 | 주식배당금 | 기타소득 | 교통비 | 식비 |
| 월급 | S사 배당금 | 유튜브수익 | 대중교통 | 주식 |
| 상여금 | H사 배당금 | 광고수익 | 택시비 | 커피/음료 |
| A사 배당금 | 주류비 | 간식 | ||
| .. | 기타교통비 | 기타식비 |
| 주거통신비 | 건강문화비 | 경조사회비 | 세금/이자 | 교육육아비 |
| 월세 | 운동/레저 | 경조사비 | 법인세 | 학원/교재비 |
| 관리비 | 여행모임 | 모임회비 | 소득세 | 육아용품 |
| 공과금 | 문화/생활 | 데이트비용 | 기타세금 | 등록금 |
| 인터넷비 | 병원비 | 선물구매비 | 대출이자 | 기타 |
| 기타통신비 |
이제 ‘다중조건 목록상자’를 만들기 위해 동적범위를 설정합니다.
OFFSET 함수 동적범위를 활용하는 방법도 있지만, 이번 강의에서는 더 간단한 방법인 표 기능을 활용하여 진행합니다. 따라서 방금 입력한 각 계정과목 및 소계정 범위를 모두 표로 변환합니다.
각 범위에는 ‘머릿글’이 포함되어 있으므로, 표로 변경하는 안내창에서 ‘머릿글 포함’ 옵션에 반드시 체크해 주세요.

표를 생성한 뒤, 표가 선택된 상태에서 [디자인] – [표 이름] 항목으로 이동합니다. 이어서 각 표의 머릿글과 동일한 이름으로 표 이름을 변경합니다.

4. 가계부 자료 입력을 위한 표 작성하기
가계부 데이터가 입력될 표를 작성합니다. [가계부입력] 시트로 이동한 뒤, 아래 항목을 추가해 주세요. (아래 항목은 가계부 사용 목적에 따라 다른 항목으로 대체하여 사용할 수도 있습니다.)
가계부 Raw Data 항목
| 날짜 | 구분 | 계정과목 | 소계정 | 입출금계좌 | 증감 | 금액 | 비고 |
항목을 입력한 뒤, 아래 그림과 같이 표의 셀 서식을 변경합니다. 셀 서식을 변경하는 방법과 빠른 작업을 위한 단축키에 대한 자세한 설명은 영상강의를 참고하세요.

이제 [구분]·[계정과목]·[소계정] 항목에 따라 선택된 상위 값에 해당하는 하위 값만 목록상자에 표시되도록 다중조건 목록상자를 구성합니다.
각 항목별로 데이터가 입력될 범위를 선택한 후, [데이터] – [데이터 유효성 검사]로 이동합니다. [제한대상]은 ‘목록’으로 선택한 다음, [원본]에 아래 수식을 입력합니다.
- 구분 : 수입,지출,이동
- 계정과목 : =INDIRECT(동일한 행의 구분 셀 [숫자앞 $ 표시 제거])
- 소계정 : =INDIRECT(동일한 행의 계정과목 셀 [숫자앞 $ 표시 제거])
- 입출금계좌 : =INDIRECT(“입출금계좌”)

위와 같이 설정을 마치면 각 상위 그룹에서 선택한 값에 따라 목록상자의 표시 항목이 자동으로 변하는 다중조건 목록상자가 완성됩니다.

이번에는 수입/지출/이동 구분에 따라 증감 화살표가 표시되도록 [조건부서식]의 [아이콘집합]을 적용합니다.
증감을 표시할 셀에 아래 IF 함수를 사용한 공식을 입력합니다.
위 공식을 입력하면 증감값에 따라 결과값이 다음과 같이 출력됩니다.
- 수입 : 1
- 지출 : -1
- 이동 : 0
- N/A : 빈칸
위 수식을 증감을 나타내는 모든 범위에 입력한 뒤, 해당 범위가 선택된 상태에서 [홈] – [조건부서식] – [아이콘집합] – [기타규칙]으로 이동하여 아래와 같이 아이콘집합 규칙을 설정합니다.
증감을 시각화할 때에는 숫자 없이 아이콘만 표시되도록 ‘아이콘만 표시’ 항목에 체크해 주세요. 아이콘 집합 사용법에 대한 다양한 실전 예제는 이전 관련강의에서 자세히 다루고 있습니다.

마지막으로 이전 강의에서 살펴본 ‘마지막셀을 자동으로 찾아 이동하는 버튼’을 생성합니다. 사용자가 새로운 가계부 항목을 추가하더라도 버튼을 클릭하면 자동으로 마지막셀을 찾아 이동하므로 작업 편의성이 크게 향상됩니다. 자세한 제작 방법은 관련 강의를 참고하세요.
마지막셀 이동버튼에 사용된 사용자지정범위 수식
링크 도형을 실수로 삭제하고 신규 도형으로 만들고 링크를 만들려고 하는데 "정의된 링크"에 "마지막셀"이 보이지 않습니다.
분면 이름관리자에서 보면 "마지막셀"이 정의되어 있습니다.
뭐가 문제일까요?
그래서 약간의 트릭을 써서, 아래 순서로 작업하시면 됩니다.
2. 범위를 하이퍼 링크로 연결
3. 이름정의범위를 동적범위로 연동
자세한 설명은 아래 링크 3번 항목부터 확인해보시겠어요?
https://www.oppadu.com/마지막셀-자동-이동-버튼-만들기/
제 답변이 도움이 되셨길 바랍니다.
감사합니다.
PDF 파일은 맞는 것 같구요. 확인 부탁드립니다.
다운로드 항목에 완성파일을 따로 구분하여 올려드렸으니 확인해주시겠어요?
소중한 의견 감사드립니다^-^
표 이름은 숫자로 시작할 수 없습니다. 이는 엑셀 근본적인 문제이므로.. 해결방법이 없습니다.
연도: 2016
연도: 2017
이런 식으로 입력해보는건 어떠실까요?^^
답변이 도움이 되셨길 바랍니다.
감사합니다.
다중조건목록상자 이제 완전히 이해를 했습니다. 정말 감사합니다.
많은 도움이 될 것 같습니다.
하나 질문이 있습니다.
상기와 같이 서식을 일자별로 다른 시트로 만들어서 사용하고 있습니다
그런데 월말에 각 계정과목별로 누적합계를 구하고 싶습니다.
즉 각 시트별로 계정과목별 누적합계가 계산되는 별도의 표가 있고, 매월말에는
그 계정과목별 누적합계가 있는 표만 보면 각 항목별 합계를 알수 있도록 말이죠
어떻게 하면 될까요? 아직 엑셀 함수 초자라 머리 속이 복잡하기만 합니다.
감사합니다
사용중인 데이터 형식에 따라 다르겠지만, 일자별(1,2,3,4..,31)로 시트를 관리중이시라면
INDIRECT 함수를 응용해보시기 바랍니다.^^
=INDIRECT('1'!A1) 은 1 시트의 A1셀을 참조합니다.
참조된 범위를 SUMIF 함수 등과 응용하셔서 일자별 합계를 구하신 뒤, 나온 값으로 누적합계를 계산해보시면 될듯 합니다.