엑셀 INDIRECT 함수는 텍스트로 작성된 셀 주소를 직접 참조하여 해당 셀의 값을 반환하는 함수입니다.
=INDIRECT(참조범위, [참조방식])
- 다른 시트를 참조할 경우, "'시트명'!A1" 형식으로 작성합니다.
- 다른 통합문서를 참조할 경우, '[통합문서1]Sheet1'!A1" 형식으로 작성합니다.
- TRUE : [기본값] A1 스타일
- FALSE : R1C1 스타일
엑셀 INDIRECT 함수는 텍스트로 작성된 셀이나 범위 주소를 직접 참조하여 해당 셀이나 범위의 값을 반환하는 함수입니다. 이 함수를 사용하면 셀이나 범위를 동적으로 참조할 수 있어 유연한 수식 작성이 가능합니다.
=INDIRECT("A1") / / A1셀의 값을 반환합니다. =INDIRECT("A" & DAY(TODAY())) / / 오늘 날짜의 일에 따라 A1 ~ A31 까지 범위를 참조합니다.
특히 다른 함수나 셀의 값을 기반으로 동적으로 범위를 참조하는 자동화 함수를 작성할 때 유용하게 사용할 수 있습니다.
=INDIRECT("'" & A1 & "'!C1:C100") / / A1셀에 작성된 시트의 C1:C100 범위를 참조합니다. =SUM(INDIRECT("'" & A1 & "'!C1:C100")) / / A1셀에 작성된 시트에서 C1:C100 범위의 합계를 구합니다.
만약 다른 통합문서를 참조할 경우, INDIRECT 함수는 다음과 같이 작성합니다.
= INDIRECT("'[통합문서1]Sheet1'!"&"A1")
다음과 같이 수식을 작성하면, A1셀에 작성된 셀 주소의 값을 동적으로 참조합니다.
=INDIRECT(A1) / / A1셀이 "B5"일 경우 B5셀의 값을 반환합니다.
다음과 같이 수식을 작성하면, A1셀에 작성한 시트의 특정 범위를 동적으로 참조할 수 있습니다.
=INDIRECT("'" & A1 & "'!B1") / / A1셀에 "1월"이 입력된 경우, 1월 시트의 B1셀을 참조합니다.
다음과 같이 VLOOKUP 함수와 INDIRECT 함수를 함께 사용해서, 여러 시트의 데이터를 동적으로 검색하는 공식을 작성할 수 있습니다.
=VLOOKUP("김하늘",INDIRECT("'" & A1 & "'!A:C"),2,0) / / A1셀에 "2월"이 입력된 경우, '김하늘' 직원의 2월 매출을 검색합니다. / / A1셀에 "4월"이 입력된 경우, '김하늘' 직원의 4월 매출을 검색합니다.
INDIRECT 함수 + VLOOKUP 함수 공식의 자세한 동작 원리는 아래 기초 입문 강의에서 꼼꼼히 정리했으니 참고하세요!👇
다음과 같이 INDIRECT 함수를 작성하면 다른 통합문서의 데이터를 동적으로 참조할 수 있습니다. 단, 참조하려는 통합문서는 반드시 열려있어야 합니다.
=INDIRECT("'[예산.xlsx]Sheet1'!A1") / / 예산이라는 통합문서에서 Sheet1 시트의 A1셀을 참조합니다.
INDIRECT 함수는 참조하는 셀의 값만 반환하며 서식은 반환하지 않습니다. 예를 들어, 참조하는 셀이 통화서식($4.00)으로 작성되어 있더라도, INDIRECT 함수는 '4'를 반환합니다.
참조할 범위가 유효하지 않을 경우, INDIRECT 함수는 #REF! 오류를 반환합니다.
INDIRECT 함수로 다른 통합문서나 시트를 참조할 경우, 통합문서는 대괄호("[]"), 시트는 느낌표("!")로 구분하여 입력합니다.
=INDIRECT("[직원정보.xlsx]"&"Sheet1!"&"A1") / / 직원정보 파일에서 Sheet1 시트의 A1셀을 참조합니다.
INDIRECT 함수의 기본 참조방식은 A1 방식입니다. 만약 R1C1 방식으로 셀을 참조할 경우 두번째 인수인 참조방식을 FALSE로 입력하세요.