아래는 이전 "INDIRECT 함수의 동적참조" 게시물의 고급예제 부분을 좀더 자세히 설명한 2번째 예제 입니다. 월별 판매 데이터를 관리하는 엑셀 파일을 설명합니다. 각 월별 데이터는 별도의 시트에 저장되어 있고, 메인 대시보드 시트에서 현재 월에 해당하는 데이터를 자동으로 가져옵니다.
시트 구성
ㄱ. 대시보드 - 현재 날짜 기준으로 해당 월의 데이터를 동적으로 표시
ㄴ. 월별데이터_1월 ~ 월별데이터_12월 - 각 월별 판매 데이터를 저장한 시트
월별 데이터 예시 (월별데이터_5월 시트)
제품명 | 판매수량 | 단가 | 총액 |
---|---|---|---|
노트북 | 25 | 1,200,000 | 30,000,000 |
키보드 | 45 | 85,000 | 3,825,000 |
마우스 | 60 | 45,000 | 2,700,000 |
모니터 | 30 | 350,000 | 10,500,000 |
이어폰 | 80 | 120,000 | 9,600,000 |
대시보드 시트 구성
ㄱ. A1 셀에 "현재 월 판매 데이터"라는 제목
ㄴ. A2 셀에 현재 날짜를 표시: =TODAY()
ㄷ. A3 셀에 현재 월을 표시: =MONTH(TODAY()) & "월"
ㄹ. A5:D10 범위에 동적 참조 수식 사용: ''월별데이터' & '현재월'' & ''월' > "월별데이터_5월" 시트 의 해당범위 간접참조
=INDIRECT("월별데이터_" & MONTH(TODAY()) & "월!A1:D5")
작동 원리 설명
- TODAY() 함수는 현재 날짜를 반환.
- MONTH(TODAY()) 함수는 현재 날짜에서 월을 숫자(1~12)로 반환.
- "월별데이터_" & MONTH(TODAY()) & "월!A1:D6" 부분은 참조할 시트 이름과 범위를 문자열로 생성합니다. 예를 들어, 현재가 5월이라면 "월별데이터_5월!A1:D6" 가 됩니다.
- INDIRECT() 함수는 이 문자열을 실제 셀 참조로 변환하여 해당 시트의 데이터를 가져옵니다.
활용 방법
이 방식을 사용하면 매월 수동으로 참조를 변경할 필요 없이 항상 현재 월의 데이터를 자동으로 표시할 수 있습니다. 월이 바뀌면 대시보드도 자동으로 새 월의 데이터를 표시합니다.
또한 다음과 같이 응용할 수도 있습니다:
- 분기별 데이터:
=INDIRECT("분기데이터_" & TEXT(INT((MONTH(TODAY())-1)/3)+1,"0") & "!A1:D10")
- 연도별 데이터:
=INDIRECT("연간데이터_" & YEAR(TODAY()) & "!A1:D10")
이 기법은 보고서 자동화, 대시보드 구성, 데이터 집계 등에 매우 유용합니다. 활용해 보세요.
작성자: 마늘빵