🎯 INDIRECT + INDEX 함수의 고급 날짜 기반 동적 참조 예제

아래는 이전 "INDIRECT 함수의 동적참조" 게시물의 고급예제 부분을 좀더 자세히 설명한 2번째 예제 입니다. 월별 판매 데이터를 관리하는 엑셀 파일을 설명합니다. 각 월별 데이터는 별도의 시트에 저장되어 있고, 메인 대시보드 시트에서 현재 월에 해당하는 데이터를 자동으로 가져옵니다.

 

시트 구성

ㄱ. 대시보드 - 현재 날짜 기준으로 해당 월의 데이터를 동적으로 표시

다른 시트에서 가져운 데이터로 구성한 대시보드

ㄴ. 월별데이터_1월 ~ 월별데이터_12월 - 각 월별 판매 데이터를 저장한 시트

INDIRECT 함수로 간접참조한 5월 원본데이터

 

월별 데이터 예시 (월별데이터_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 함수

=INDIRECT("월별데이터_" & MONTH(TODAY()) & "월!A1:D5")

 

작동 원리 설명

  1. TODAY() 함수는 현재 날짜를 반환.
  2. MONTH(TODAY()) 함수는 현재 날짜에서 월을 숫자(1~12)로 반환.
  3. "월별데이터_" & MONTH(TODAY()) & "월!A1:D6" 부분은 참조할 시트 이름과 범위를 문자열로 생성합니다. 예를 들어, 현재가 5월이라면 "월별데이터_5월!A1:D6" 가 됩니다.
  4. INDIRECT() 함수는 이 문자열을 실제 셀 참조로 변환하여 해당 시트의 데이터를 가져옵니다.

 

활용 방법

이 방식을 사용하면 매월 수동으로 참조를 변경할 필요 없이 항상 현재 월의 데이터를 자동으로 표시할 수 있습니다. 월이 바뀌면 대시보드도 자동으로 새 월의 데이터를 표시합니다.

 

또한 다음과 같이 응용할 수도 있습니다:

  • 분기별 데이터: =INDIRECT("분기데이터_" & TEXT(INT((MONTH(TODAY())-1)/3)+1,"0") & "!A1:D10")
  • 연도별 데이터: =INDIRECT("연간데이터_" & YEAR(TODAY()) & "!A1:D10")

이 기법은 보고서 자동화, 대시보드 구성, 데이터 집계 등에 매우 유용합니다. 활용해 보세요.

 

 

작성자: 마늘빵