| 인수 | 설명 | 필수 여부 |
|---|---|---|
| ref_text | 셀 참조를 나타내는 텍스트 문자열 (예: "A1", "Sheet1!B2") | 필수 |
| a1 | TRUE 또는 생략: A1 스타일 참조 / FALSE: R1C1 스타일 참조 | 선택 |
A1에 "B5" 라고 입력되어 있는 경우
수식: =INDIRECT(A1)
결과: B5 셀의 값을 반환
활용: A1의 내용을 바꾸면 참조 대상 셀이 자동으로 바뀝니다.
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에 입력된 이름의 범위를 합산
| 상황 | 주의사항 |
|---|---|
| #REF! 오류 | ref_text가 유효하지 않은 참조(예: 존재하지 않는 시트명, 잘못된 주소 형식)일 때 발생 |
| 휘발성 함수 | OFFSET과 마찬가지로 워크시트가 재계산될 때마다 다시 계산됨 — 대용량 데이터에서는 성능 저하 가능 |
| 외부 통합 문서 참조 | 다른 파일(통합 문서)을 참조하는 INDIRECT는 해당 파일이 열려 있을 때만 동작 |
직접 참조(예: =B5)는 수식에 주소가 고정됩니다. INDIRECT는 주소를 텍스트로 받으므로 수식을 바꾸지 않고도 참조 대상을 바꿀 수 있습니다.
두 번째 인수(a1)를 FALSE로 설정하면 R1C1 스타일을 사용할 수 있습니다. 예: =INDIRECT("R2C3", FALSE)는 2행 3열 셀(C2)을 참조합니다. 일반적인 업무에서는 A1 스타일이 더 직관적입니다.