INDIRECT 함수 실무 패턴 — 시트 이름을 수식 안에서 동적으로 쓰는 법
지점별 매출 시트가 서울, 부산, 대구…로 나뉘어 있을 때, 드롭다운에서 고른 지점 표를 한 수식으로 가리키려면 INDIRECT가 나옵니다. 문자열 "서울!B2:B100"을 참조로 바꿔 주는 함수예요.
다만 INDIRECT는 휘발성(volatile) 함수입니다. 워크북이 바뀔 때마다 다시 계산해서 큰 파일에서는 느려질 수 있어요. “꼭 필요할 때만” 쓰라고 강의에서 강조합니다. 연동 드롭다운 글과 같이 보면 실무 맥락이 잡혀요.
이 글을 따라 하면 얻는 것
– INDIRECT 기본·시트명 따옴표
– 명명 범위·드롭다운 연동
– #REF!·시트명 변경 리스크
– INDEX·CHOOSE 대안
1. 기본 문법
=INDIRECT(참조_문자열, [a1])
A1 스타일(기본):
=INDIRECT("B2")
=SUM(INDIRECT("서울!B2:B10"))
시트명에 공백·숫자:
=INDIRECT("'2026 Q1'!B2:B10")
R1C1:
=INDIRECT("R2C2",FALSE)
2. 따라 할 예제 — 지점 선택 합계
목록 시트 A2: 드롭다운 (서울, 부산, 대구)
집계 B2:
=SUM(INDIRECT(A2&"!$B$2:$B$100"))
A2가 서울이면 서울!$B$2:$B$100을 참조합니다. 지점 시트 이름과 완전히 일치해야 합니다. 띄어쓰기 하나만 달라도 #REF!.
공백 있는 시트명:
=SUM(INDIRECT("'"&A2&"'!$B$2:$B$100"))
3. 명명 범위와 INDIRECT
명명 범위 매출_서울을 만들어 두면:
=SUM(INDIRECT("매출_"&A2))
드롭다운 값이 서울일 때 매출_서울 범위를 가리킵니다. 데이터 유효성 목록과 자주 짝입니다.
4. 사용자 지정 수식 유효성
사용자 지정 수식 규칙에서:
=COUNTIF(INDIRECT(A2&"!B:B"),B2)>0
선택한 시트 B열에 입력값이 존재하는지 검사합니다.
5. 휘발성·성능
INDIRECT는 모든 재계산에 관여할 수 있습니다. 수천 행 배열에 INDIRECT를 중첩하면 저장·열 때 느려집니다. 대안:
| 상황 | 대안 |
|---|---|
| 고정 시트 몇 개 | CHOOSE+MATCH |
| 365 | XLOOKUP, FILTER |
| 구조 고정 | Ctrl+T 표 + 구조적 참조 |
6. #REF! 예방
- 시트명 변경 시 수식 문자열은 자동 갱신 안 됨
- 삭제된 시트 참조
- 작은따옴표 누락 (공백 시트명)
"vs'혼동
팀 규칙: 지점 코드는 SEOUL처럼 공백 없는 영문으로 통일하면 INDIRECT 문자열이 단순해집니다.
7. OFFSET과 비교
OFFSET은 범위를 이동·확장하고, INDIRECT는 문자열 주소를 참조합니다. 차트 동적 범위 NAME에서 둘 다 쓰이지만, 365에서는 @ spill·표가 더 권장됩니다.
8. FAQ
Q. 외부 통합 문서?
닫힌 파일은 INDIRECT로 못 가리킵니다.
Q. INDEX로 대체?
시트가 많고 패턴이 같으면 INDEX+MATCH+시트 열이 더 안정적일 때가 많습니다.
9. 관련 글
10. 레거시 통합 문서에서 마이그레이션
INDIRECT-heavy 파일을 표 구조로 옮길 때는 시트별 동일 열 구조가 전제입니다. 지점 시트 B열이 모두 매출이면, Power Query로 폴더·시트를 세로 결합한 뒤 피벗이 INDIRECT보다 유지보수에 유리합니다. Power Query 입문 글과 연결해 보세요.
단기적으로 INDIRECT를 유지해야 한다면, 목록!A2 드롭다운 값과 시트 탭 이름을 데이터 유효성 목록으로 같은 소스에서 끌어오세요. 탭 이름만 바꾸고 목록은 안 바꾸면 #REF!가 납니다.
참고: Microsoft INDIRECT 공식 문서.
실무 메모 1
지점 코드는 공백 없는 영문으로 통일하면 INDIRECT 문자열이 단순해집니다. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 2
시트명 변경 전 INDIRECT 수식 목록을 검색해 두세요. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 3
대용량 파일에서는 CHOOSE+MATCH로 휘발성을 줄일 수 있습니다. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 4
지점 코드는 공백 없는 영문으로 통일하면 INDIRECT 문자열이 단순해집니다. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 5
시트명 변경 전 INDIRECT 수식 목록을 검색해 두세요. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 6
대용량 파일에서는 CHOOSE+MATCH로 휘발성을 줄일 수 있습니다. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 7
지점 코드는 공백 없는 영문으로 통일하면 INDIRECT 문자열이 단순해집니다. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 8
시트명 변경 전 INDIRECT 수식 목록을 검색해 두세요. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 9
대용량 파일에서는 CHOOSE+MATCH로 휘발성을 줄일 수 있습니다. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 10
지점 코드는 공백 없는 영문으로 통일하면 INDIRECT 문자열이 단순해집니다. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 11
시트명 변경 전 INDIRECT 수식 목록을 검색해 두세요. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 12
대용량 파일에서는 CHOOSE+MATCH로 휘발성을 줄일 수 있습니다. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 13
지점 코드는 공백 없는 영문으로 통일하면 INDIRECT 문자열이 단순해집니다. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 14
시트명 변경 전 INDIRECT 수식 목록을 검색해 두세요. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 15
대용량 파일에서는 CHOOSE+MATCH로 휘발성을 줄일 수 있습니다. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 16
지점 코드는 공백 없는 영문으로 통일하면 INDIRECT 문자열이 단순해집니다. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 17
시트명 변경 전 INDIRECT 수식 목록을 검색해 두세요. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 18
대용량 파일에서는 CHOOSE+MATCH로 휘발성을 줄일 수 있습니다. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 19
지점 코드는 공백 없는 영문으로 통일하면 INDIRECT 문자열이 단순해집니다. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 20
시트명 변경 전 INDIRECT 수식 목록을 검색해 두세요. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 21
대용량 파일에서는 CHOOSE+MATCH로 휘발성을 줄일 수 있습니다. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 22
지점 코드는 공백 없는 영문으로 통일하면 INDIRECT 문자열이 단순해집니다. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 23
시트명 변경 전 INDIRECT 수식 목록을 검색해 두세요. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 24
대용량 파일에서는 CHOOSE+MATCH로 휘발성을 줄일 수 있습니다. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 25
지점 코드는 공백 없는 영문으로 통일하면 INDIRECT 문자열이 단순해집니다. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 26
시트명 변경 전 INDIRECT 수식 목록을 검색해 두세요. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 27
대용량 파일에서는 CHOOSE+MATCH로 휘발성을 줄일 수 있습니다. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 28
지점 코드는 공백 없는 영문으로 통일하면 INDIRECT 문자열이 단순해집니다. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 29
시트명 변경 전 INDIRECT 수식 목록을 검색해 두세요. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.