엑셀의 개발 도구 메뉴 중 양식 컨트롤이란 것이 있습니다. 엑셀로 특정한 서식을 만들 때 굉장히 유용하게 사용할 수 있는 단추, 콤보 상자, 확인란, 스핀 단추, 목록 상자, 옵션 단추 등등의 버튼 모음이라고 생각하시면 될 것 같습니다. 일단 이 양식 컨트롤을 사용하려면, 개발 도구 메뉴를 '추가'하는 과정이 필요합니다. 상단 메뉴, 파일을 누르고, 리본 사용자 지정 탭의 개발 도구 메뉴에 체크해 줍니다. 개발 도구 메뉴가 추가 되면, 하위의 삽입 메뉴를 클릭하고, 스핀 단추를 아래와 같이 G1의 연도 정보 셀 옆에 추가해줍니다.
아래는 학사 일정표라 이름 부친 그냥 보통의 달력입니다. 달력에 연도과 월의 정보만 바꾸면 자동으로 해당 월의 날짜 정보가 생설될 수 있도록 만들어보았습니다. 물론 연도과 월은 그냥 바로 입력해도 되는 부분이지만, 양식 컨트롤의 스핀 단추를 사용하면 직접 해당 정보를 입력하지 않고도, 버튼 클릭 만으로 간편하게 바꿀 수 있다는 장점이 있습니다. 스핀 단추를 만들었으면, 이 단추를 함께 동작할 특정 셀에 연결해야합니다.
당연히 연도 데이터인 G1셀에 연결해야 하는데, 스핀 단추를 우클릭 후에, 컨트롤 서식 창을 열어줍니다. 그리고 셀 연결에 G1셀을 입력해주고, 최소값, 최대값은 원하시는 값을 입력하시면 되고, 증분 변경 값은 1로 고정합니다. 년도가 위 아래로 1씩 변경될 수 있도록 해야합니다. 필요하다면, F1셀의 월 정보에 연결할 또 다른 스핀 단추를 추가할 수도 있습니다. 이경우에는 최소값을 1, 최대값을 12로 고정해야 합니다. 월은 1월부터 12월까지만 있으니까요.
그리고 아래는 CHOOSE 함수를 사용해서, 숫자 데이터를 텍스트 데이터로 변환해 주었습니다. 물론 제일 익숙한 IF 함수를 사용해도 됩니다. 하지만 CHOOSE 함수를 사용하는 것이 훨씬 더 간결하게 수식을 구성할 수 있는 방법입니다. CHOOSE 함수는 보통 WEEKDAY 함수와 함께 쓰는 경우가 많은데요. 특정 날짜의 요일을 텍스트로 확인하고 싶을 때 두 함수를 조합해서 사용합니다.
WEKKDAY 함수는 이전 포스팅, 엑셀배우기, EDATE 함수와 WEEKDAY 함수로 수강 종료일 구하기! 에서도 다룬 적인 있는데, 함의 구조는 ='WEEKDAY(날짜,옵션)'으로, 옵션 1은 일/월/화/수/목/금/토의 순서로 요일 정보를 반환합니다. 즉, 날짜가 일요일이라면 1, 월요일은 2, 토요일은 7이라는 숫자를 반환하는 형태입니다. 그리고 옵션 2는 우리에게 더 일반적인 월/화/수/목/금/토/일의 순서로 요일 정보를 반환합니다. 월요일이 1, 화요일이 2, 일요일이 7의 숫자를반환하는 방식입니다.
다시 CHOOSE 함수로 돌아가서, CHOOSE 함수는 1부터 순서대로 입력한 대응 텍스트를 반환해주는 함수입니다. 즉, 아래의 G2 셀을 풀이하면, F1셀의 값이, 1일때는 January, 2일 때는, February, 3일 때는 March로 순서대로 각각의 대응 텍스트로 바꾸어 표기해주라는 의미입니다. 한편, 위에서 WEEKDAY 함수와 CHOOSE 함수로 특정 날짜의 요일 정보를 확인한다는 것은 WEEKDAY 함수로 해당 날짜를 1부터 7까지의 숫자로 바꾸고, 이 숫자를 다시 CHOOSE 함수로 요일 텍스트로 바꾸어 주는 겁니다.
이제 연도와 월을 마무리 지었으니, DATE 함수로 각각의 연도와 월 데이터와 연동할 일 정보를 만들어 보겠습니다. DATE 함수는 숫자 조합으로 날짜를 만들어내는 함수 입니다. 함수 구조는 '=DATE(년, 월, 일)'입니다. 아래의 A6셀에서는, 일단 DATE 함수로 2017년 8월 1일을 만들어 냈습니다. 그런데 우리는 이 매월 1일이 있는 주의 월요일부터 달력의 날짜가 시작되게 하고 싶습니다.
그래서 이 날짜를 옵션 2를 사용한 WEEKDAY 함수 값으로 빼주고 다시 1을 더해서 월요일의 날짜를 반환 합니다. 즉, 2017년 8월 1일 - 2 + 1 = 7월 31일, 월요이 되는 것입니다. 옵션 1의 WEEKDAY 함수를 사용한다면, '=DATE(G1,F1,1)-WEEKDAY(DATE(G1,F1,1),1)+2'로 함수 수식을 구성해야 마찬가지로 월요일인 7월 31일을 반환할 수 있습니다.
그리고 B6셀부터 오른쪽 셀에는 각각의 왼쪽 셀값에 1씩을 더해주면 되고(A6+1), B6셀의 아래쪽 셀는 각각의 위쪽 셀값에 7을 더해주면(A6 +7), 해당 월의 날짜 정보가 모두 완성됩니다. 그리고 각 날짜를 날짜 전체 정보(2017-07-31)가 표기되는 것이 아닌, 일 정보만 표기될 수 있도록, 셀서식에서 사용자 지정 탭을 클릭하고 dd로 표기해주도록 합시다. 또한 아래 에서 7월 31일, 8월 1일, 2일, 3일 등등 8월에 해당하지 않는 값들을 회색 처리하는 것은 조건부 서식을 이용하면 됩니다. 이 내용은 나중에 다시 다루도록 하겠습니다.
'알면좋은이야기 > 엑셀' 카테고리의 다른 글
엑셀 배우기, 함수의 기초, 엑셀의 시작인 IF 함수를 알아보자. (0) | 2017.09.01 |
---|---|
엑셀 배우기, 양식컨트롤 확인란으로 체크리스트 만들기! (0) | 2017.08.24 |
엑셀 배우기, OFFSET/ COUNTA함수를 활용한 동적 이름 정의와 드롭다운 목록 생성! (0) | 2017.08.21 |
엑셀 배우기, 표 자동 확장 및 동적 범위 참조에 유용한 표서식을 알아보자. (0) | 2017.08.20 |
엑셀 배우기, 일주일 이내 종료일을 확인할 수 있는 조건부 서식! (0) | 2017.08.15 |