엑셀 INDIRECT 함수 완벽 정리
텍스트 문자열로 셀 참조 만들기

INDIRECT 함수는 텍스트 문자열로 표현된 셀 주소나 범위 이름을 실제 셀 참조로 변환하는 함수입니다. 시트 이름이나 셀 주소를 수식에 직접 입력하는 대신, 셀에 입력된 값을 참조 주소로 활용할 수 있어 드롭다운·시트 이름 변수 활용 등에 유용합니다.

기본 문법

=INDIRECT(ref_text, [a1])
인수설명필수 여부
ref_text셀 참조를 나타내는 텍스트 문자열 (예: "A1", "Sheet1!B2")필수
a1TRUE 또는 생략: A1 스타일 참조 / FALSE: R1C1 스타일 참조선택
INDIRECT는 텍스트를 참조로 바꾸는 함수입니다. 텍스트 연결(&) 연산자를 사용하면 동적으로 주소를 조합할 수 있습니다.

기본 예제

예제 1: 텍스트로 셀 참조

A1에 "B5" 라고 입력되어 있는 경우

수식: =INDIRECT(A1)

결과: B5 셀의 값을 반환

활용: A1의 내용을 바꾸면 참조 대상 셀이 자동으로 바뀝니다.

예제 2: 텍스트 연결로 동적 참조

A1에 숫자 3이 입력되어 있는 경우

수식: =INDIRECT("B" & A1)

결과: "B3" 참조 → B3 셀의 값 반환

A1의 값이 5로 바뀌면 자동으로 B5를 참조합니다.

실무 활용 — 다른 시트 동적 참조

여러 시트의 동일한 위치 데이터를 하나의 시트에서 집계할 때 유용합니다.

상황: A2에 시트 이름("1월", "2월" 등)이 드롭다운으로 선택되는 경우

수식: =INDIRECT("'" & A2 & "'!B5")

결과: A2에 선택된 시트의 B5 값을 반환

주의: 시트 이름에 공백이 있으면 작은따옴표(')로 감싸야 합니다.

시트 이름에 띄어쓰기나 특수문자가 포함된 경우 반드시 작은따옴표로 감싸야 합니다.
올바른 형식: ="'" & 시트이름 & "'!셀주소"

실무 활용 — 이름 정의와 조합

엑셀의 이름 정의 기능(수식 탭 > 이름 관리자)과 INDIRECT를 함께 쓰면 범위 이름을 변수처럼 활용할 수 있습니다.

상황: "1월매출", "2월매출"이라는 이름이 정의된 범위가 있고, A1에 "1월매출" 텍스트가 입력된 경우

수식: =SUM(INDIRECT(A1))

결과: A1에 입력된 이름의 범위를 합산

INDIRECT의 주의사항

상황주의사항
#REF! 오류ref_text가 유효하지 않은 참조(예: 존재하지 않는 시트명, 잘못된 주소 형식)일 때 발생
휘발성 함수OFFSET과 마찬가지로 워크시트가 재계산될 때마다 다시 계산됨 — 대용량 데이터에서는 성능 저하 가능
외부 통합 문서 참조다른 파일(통합 문서)을 참조하는 INDIRECT는 해당 파일이 열려 있을 때만 동작

자주 묻는 질문

Q. INDIRECT와 직접 참조의 차이는 무엇인가요?

직접 참조(예: =B5)는 수식에 주소가 고정됩니다. INDIRECT는 주소를 텍스트로 받으므로 수식을 바꾸지 않고도 참조 대상을 바꿀 수 있습니다.

Q. R1C1 스타일 참조는 어떻게 쓰나요?

두 번째 인수(a1)를 FALSE로 설정하면 R1C1 스타일을 사용할 수 있습니다. 예: =INDIRECT("R2C3", FALSE)는 2행 3열 셀(C2)을 참조합니다. 일반적인 업무에서는 A1 스타일이 더 직관적입니다.

참고: Microsoft Excel 공식 함수 설명 (INDIRECT 함수)