구글 스프레드시트의 IMPORTRANGE는 다른 Google
스프레드시트에 있는 셀 범위를 현재 파일로 가져오는 함수입니다.
수식을 처음 입력하면 #REF! 오류와 함께 액세스 허용
메시지가 표시될 수 있습니다. 이전에는 작동했지만 원본 시트 이름이
바뀌거나 가져오는 범위가 너무 커져 로드가 지연될 수도 있습니다.
같은 #REF!이라도 원인은 하나가 아닙니다. 두 문서를
처음 연결해야 하는 상태인지, 현재 계정에 원본 파일 권한이 없는지,
지정한 시트나 범위를 찾지 못하는지를 오류 세부 문구로 구분해야 합니다.
=IMPORTRANGE("원본_스프레드시트_URL","원본데이터!A1:E1000")
첫 번째 인수에는 원본 스프레드시트의 URL을 넣고, 두 번째 인수에는 가져올 시트 이름과 셀 범위를 문자열로 작성합니다.
이 글은 Google의 IMPORTRANGE, 가져오기 함수 사용량, 데이터 참조 최적화, 데이터 가져오기 방식과 QUERY 공식 문서를 기준으로 작성했습니다. 예제의 문서 URL, 시트 이름과 셀 범위는 실제 파일 구조에 맞게 변경해야 합니다.
![]() |
| IMPORTRANGE는 다른 Google 스프레드시트의 지정 범위를 가져오는 외부 데이터 함수입니다. 처음 연결할 때는 원본 접근 권한과 대상 문서의 액세스 허용이 필요합니다. 위 이미지는 두 문서의 연결 구조를 설명하기 위한 대표 개념 이미지입니다. |
IMPORTRANGE 함수의 기본 구문
=IMPORTRANGE(
스프레드시트_URL,
범위_문자열
)
두 인수의 역할은 다음과 같습니다.
- 스프레드시트 URL: 데이터를 가져올 원본 Google 스프레드시트의 주소
-
범위 문자열:
시트이름!A1:E1000처럼 가져올 탭과 셀 범위
URL과 범위 문자열을 수식에 직접 작성하면 각각 큰따옴표로 감쌉니다.
=IMPORTRANGE(
"https://docs.google.com/spreadsheets/d/원본_문서_ID/edit",
"원본데이터!A1:E1000"
)
원본 문서 주소에 포함된 실제 문서 ID를 그대로 사용해야 합니다.
예제의 원본_문서_ID 문구를 그대로 입력하는 수식이
아닙니다.
URL과 범위 문자열을 셀에 분리하면 관리하기 쉽습니다
긴 URL과 범위 문자열을 수식 안에 모두 작성하면 원본 파일이나 시트명이 바뀌었을 때 수식 전체를 수정해야 합니다.
다음과 같이 입력값을 분리할 수 있습니다.
A2: 원본 스프레드시트 URLB2: 가져올 범위 문자열C2: IMPORTRANGE 결과
A2에는 원본 문서 주소를 입력합니다.
https://docs.google.com/spreadsheets/d/원본_문서_ID/edit
B2에는 시트 이름과 범위를 입력합니다.
원본데이터!A1:E1000
C2에는 다음 수식을 입력합니다.
=IMPORTRANGE(A2,B2)
이 구조에서는 원본 문서나 범위를 바꿀 때 A2 또는 B2만 수정하면 됩니다.
하지만 A2와 B2가 계산할 때마다 계속 바뀌도록 만들면 외부 요청이 반복될 수 있으므로 안정적인 고정 URL과 범위 문자열을 사용하는 편이 적절합니다.
시트 이름은 가능하면 생략하지 않습니다
범위 문자열에서 시트 이름을 생략하면 원본 스프레드시트의 첫 번째 시트에서 해당 범위를 가져옵니다.
=IMPORTRANGE(
A2,
"A1:E1000"
)
원본 파일에서 시트 순서가 바뀌면 이전과 다른 첫 번째 시트를 참조할 가능성이 있습니다.
업무상 특정 시트가 정해져 있다면 다음처럼 시트 이름을 명시합니다.
=IMPORTRANGE(
A2,
"원본데이터!A1:E1000"
)
시트 이름에 공백이 있으면 작은따옴표로 감쌉니다
원본 탭 이름이 “월별 매출”처럼 공백을 포함한다면 범위 문자열 안에서 시트 이름을 작은따옴표로 감쌀 수 있습니다.
=IMPORTRANGE(
A2,
"'월별 매출'!A1:E1000"
)
수식의 두 번째 인수 전체는 큰따옴표로 감싸고, 그 안의 시트 이름은 작은따옴표로 구분한 구조입니다.
처음 연결할 때 #REF!와 액세스 허용이 표시됩니다
대상 스프레드시트가 새로운 원본 문서에서 처음 데이터를 가져오면 두 문서를 연결하기 위한 승인이 필요합니다.
기본 수식을 입력한 뒤 몇 초 정도 기다리면 다음 상태가 나타날 수 있습니다.
이 시트를 연결해야 합니다.
액세스 허용
다음 순서로 연결합니다.
- 원본 스프레드시트에 현재 Google 계정으로 접근할 수 있는지 확인합니다.
- 대상 스프레드시트에 IMPORTRANGE 수식을 입력합니다.
- #REF! 셀을 선택합니다.
- 액세스 허용을 선택합니다.
- 원본 데이터가 표시될 때까지 기다립니다.
내가 소유한 두 문서를 연결하는 경우에도 대상 문서에서 처음 한 번은 연결 승인이 필요할 수 있습니다.
액세스 허용 버튼이 없으면 원본 권한부터 확인합니다
현재 계정이 원본 스프레드시트에 접근할 수 없다면 대상 문서에서 액세스 허용만 선택해 해결할 수 없습니다.
다음 순서로 확인합니다.
- IMPORTRANGE에 입력한 원본 URL을 브라우저에서 엽니다.
- 현재 Google 계정으로 원본 파일을 볼 수 있는지 확인합니다.
- 권한이 없다면 원본 소유자에게 액세스를 요청합니다.
- 권한이 부여된 뒤 대상 파일로 돌아와 수식을 다시 확인합니다.
여러 Google 계정에 동시에 로그인한 상태라면 원본을 볼 수 있는 계정과 대상 파일을 편집하는 계정이 같은지도 확인합니다.
현재 계정에 원본 문서를 볼 권한이 먼저 있어야 합니다.
그다음 대상 문서에서 두 파일의 연결을 허용합니다.
원본 권한이 없으면 대상 문서의 수식만 수정해도 해결되지 않습니다.
액세스를 허용하기 전에 대상 문서 편집자를 확인합니다
IMPORTRANGE 연결이 허용되면 대상 스프레드시트의 편집자는 해당 원본의 다른 범위를 가져오는 IMPORTRANGE 수식을 작성할 수 있습니다.
따라서 원본에 급여, 개인정보, 계약금액이나 내부 관리 정보가 포함돼 있다면 대상 문서의 편집 권한을 먼저 확인해야 합니다.
다음 항목을 점검합니다.
- 대상 문서의 편집자가 누구인지
- 원본 전체에서 민감한 범위를 가져와도 되는 편집자만 있는지
- 대상 문서를 링크가 있는 모든 사용자에게 편집 가능하게 공유하지 않았는지
- 필요하다면 별도의 공유용 원본 문서를 만들어 필요한 데이터만 제공할지
특정 범위만 보여주려는 목적이라면 원본 문서 전체를 연결하기보다 공유 가능한 데이터만 모은 별도 스프레드시트를 원본으로 사용하는 구조를 검토할 수 있습니다.
#REF! 오류 문구별 확인 위치
| 표시되는 상태 | 주요 원인 | 수정 방향 |
|---|---|---|
| 이 시트를 연결해야 함 | 대상과 원본을 처음 연결함 | 원본 권한 확인 후 액세스 허용 |
| 해당 스프레드시트에 액세스할 권한이 없음 | 현재 계정에 원본 보기 권한이 없음 | 원본 소유자에게 접근 권한 요청 |
| 가져온 범위 또는 시트를 찾을 수 없음 | 탭 이름 변경·오타·잘못된 셀 주소 | 원본 탭 이름과 범위 문자열 수정 |
| 배열 결과를 펼칠 수 없음 | 결과가 표시될 셀에 기존 값이나 수식이 있음 | 출력 영역의 방해 셀 이동 또는 삭제 |
| 순환 종속성 | 문서가 서로 상대방의 결과를 다시 가져옴 | 데이터 흐름을 한 방향으로 재구성 |
범위나 시트를 찾을 수 없을 때
원본 파일을 열 수 있고 액세스도 허용했는데 데이터를 가져오지 못한다면 두 번째 인수의 시트 이름과 범위를 확인합니다.
다음 수식은 원본에 이름이 정확히 “원본데이터”인 탭이 있어야 합니다.
=IMPORTRANGE(
A2,
"원본데이터!A1:E1000"
)
다음 항목을 확인합니다.
- 원본 탭의 실제 이름과 철자가 일치하는지
- 탭 이름 앞뒤에 공백이 포함되지 않았는지
- 탭이 삭제되거나 이름이 변경되지 않았는지
- 범위 시작 셀과 끝 셀의 순서가 올바른지
- 행 번호와 열 문자가 실제 범위 안에 있는지
- URL이 비슷한 이름의 다른 문서를 가리키지 않는지
원본에서 탭 이름을 변경하면 기존 대상 문서의 범위 문자열도 함께 수정해야 할 수 있습니다.
같은 파일의 다른 탭에는 IMPORTRANGE를 사용하지 않습니다
원본과 결과가 같은 스프레드시트 파일 안에 있다면 인터넷을 거치는 IMPORTRANGE가 필요하지 않습니다.
같은 파일의 “원본데이터” 탭을 참조하는 일반 수식입니다.
='원본데이터'!A1:E1000
같은 파일 안의 범위 참조는 외부 파일 연결 승인 없이 사용할 수 있습니다.
다른 스프레드시트 파일에서 데이터를 가져와야 할 때만 IMPORTRANGE를 사용합니다.
QUERY와 결합하기 전에 먼저 연결 권한을 승인합니다
IMPORTRANGE 결과를 QUERY로 필터링할 수 있지만 새로운 원본을 처음 연결하는 경우에는 액세스 허용 버튼을 찾기 어려울 수 있습니다.
먼저 작은 범위의 IMPORTRANGE 수식만 입력해 연결을 승인합니다.
=IMPORTRANGE(
A2,
"원본데이터!A1:A2"
)
액세스 허용 후 데이터가 표시되면 필요한 QUERY 수식을 작성합니다.
=QUERY(
IMPORTRANGE(
A2,
"원본데이터!A1:E1000"
),
"select Col1,Col3,Col5 where Col5 >= 100000",
1
)
IMPORTRANGE가 반환한 배열을 QUERY의 첫 번째 인수로 사용하면 열은
원본의 A·B·C가 아니라 결합된 배열의 위치에 따라
Col1, Col2, Col3으로
참조합니다.
Col1: 가져온 범위의 첫 번째 열Col2: 가져온 범위의 두 번째 열Col5: 가져온 범위의 다섯 번째 열
여러 수식에서 반복하지 말고 한 번만 가져옵니다
다음처럼 같은 원본 범위를 여러 수식에서 반복해서 가져올 수 있습니다.
=QUERY(IMPORTRANGE(A2,"원본데이터!A:E"),"select Col1,Col3",1)
=QUERY(IMPORTRANGE(A2,"원본데이터!A:E"),"select Col1,Col5",1)
=FILTER(IMPORTRANGE(A2,"원본데이터!A:E"),조건범위)
같은 외부 데이터를 여러 번 요청하면 수식 수와 네트워크 요청이 늘어날 수 있습니다.
대상 문서에 “가져오기”라는 전용 탭을 만들고 A1에서 한 번만 데이터를 가져옵니다.
=IMPORTRANGE(
설정!A2,
"원본데이터!A1:E1000"
)
그다음 다른 탭에서는 외부 함수가 아니라 현재 파일의 가져오기 결과를 참조합니다.
=QUERY(
가져오기!A:E,
"select A,C,E where E >= 100000",
1
)
이 수식은 같은 스프레드시트 안의 범위를 조회하므로 일반 열 문자인 A·C·E를 사용합니다.
전체 열보다 실제 데이터 범위를 가져옵니다
다음 수식은 A열부터 Z열 전체를 요청합니다.
=IMPORTRANGE(
A2,
"원본데이터!A:Z"
)
실제 데이터가 A열부터 E열, 5,000행까지만 있다면 필요하지 않은 열과 빈 행까지 넓게 요청하지 않도록 범위를 줄입니다.
=IMPORTRANGE(
A2,
"원본데이터!A1:E5000"
)
데이터가 계속 추가된다면 충분한 범위를 정하되 실제 사용량과 크게 차이 나는 전체 열을 여러 문서에서 반복해 가져오지 않습니다.
원본에서 먼저 계산하고 필요한 결과만 가져옵니다
대상 파일에서 원본의 세부 행 전체를 가져온 뒤 합계 하나만 계산하는 구조라면 불필요한 데이터 전송이 발생합니다.
대상 문서에서 세부 데이터를 모두 가져오는 구조:
=SUM(
IMPORTRANGE(
A2,
"원본데이터!E2:E100000"
)
)
최종 목적이 합계 한 개라면 원본 문서에서 합계를 계산한 셀을 만든 뒤 그 셀만 가져오는 방식이 더 적절할 수 있습니다.
=IMPORTRANGE(
A2,
"요약!B2"
)
원본에서 필터·집계·정리를 마친 작은 공유용 범위를 만들면 대상 문서가 전송받아야 하는 데이터 양을 줄일 수 있습니다.
이름이 지정된 범위를 사용할 수 있습니다
원본 문서에 이름이 지정된 범위가 있다면 셀 주소 대신 해당 이름을 두 번째 인수에 사용할 수 있습니다.
=IMPORTRANGE(
A2,
"공유용_매출데이터"
)
이름이 지정된 범위는 원본에서 공유할 범위를 명확하게 구분하는 데 사용할 수 있습니다.
이름이 변경되거나 삭제되면 IMPORTRANGE 수식도 해당 범위를 찾지 못할 수 있으므로 원본 관리 기준이 필요합니다.
로드 중 상태가 길어질 때 확인할 항목
수식과 권한이 올바르더라도 다음 이유로 로드 시간이 길어질 수 있습니다.
- 가져오는 범위가 지나치게 큼
- 같은 문서에 IMPORTRANGE 수식이 많이 있음
- 여러 대상 문서가 하나의 원본을 동시에 가져옴
- 원본 스프레드시트의 계산이 끝나지 않음
- 원본이 다른 IMPORTRANGE 결과에 다시 의존함
- URL이나 범위 문자열이 자주 변경됨
- 작성자가 만든 다른 열린 문서에서도 가져오기 함수 요청이 많음
- 네트워크 연결이 느리거나 일시적으로 불안정함
원본 문서의 데이터가 변경되면 열려 있는 대상 문서들도 새 데이터를 요청할 수 있습니다. 원본의 계산이 완료돼야 대상 문서가 최종 결과를 받을 수 있으므로 원본 자체의 복잡한 수식도 함께 확인해야 합니다.
요청이 많다는 오류가 표시될 때
가져오기 함수에서 너무 많은 트래픽이 발생하면 데이터를 로드하는 데 시간이 걸린다는 오류가 표시될 수 있습니다.
다음 구조를 먼저 줄입니다.
- 같은 원본 범위를 여러 셀에서 반복 호출
- 전체 열·전체 시트를 불필요하게 가져오는 수식
- 조건 셀이 변경될 때마다 URL이나 범위가 계속 바뀌는 구조
- IMPORTRANGE 결과를 다시 다른 문서로 전달하는 긴 연결 체인
- 사용하지 않는 과거 가져오기 수식
- 같은 작성자가 만든 여러 열린 문서의 IMPORT 함수
한 번의 가져오기 전용 탭으로 통합하고, 원본에서 데이터를 먼저 정리한 뒤 필요한 범위만 가져오는 방식으로 수정합니다.
요청당 데이터 크기도 제한됩니다
Google 공식 문서는 IMPORTRANGE 요청당 수신 데이터를 현재 10MB로 제한한다고 안내합니다.
셀 개수가 적어 보여도 긴 문자열, 많은 열과 큰 데이터가 포함되면 전송 크기가 커질 수 있습니다.
결과가 너무 크거나 계속 로드되지 않는다면 다음 방법을 검토합니다.
- 필요한 열만 선택한 공유용 범위 생성
- 완료된 과거 데이터와 현재 데이터를 분리
- 원본에서 QUERY로 필요한 행만 정리
- 세부 행 대신 그룹별 합계·개수·평균만 제공
- 여러 대상 문서에서 동일한 전체 원본을 반복하지 않음
10MB를 특정 셀 개수나 행 개수로 단순 변환할 수는 없습니다. 각 셀의 값 길이와 데이터 구조가 다르므로 고정된 최대 행 수를 보장해서는 안 됩니다.
브라우저 새로고침은 IMPORTRANGE 강제 갱신 방법이 아닙니다
IMPORTRANGE는 문서가 열려 있는 동안 주기적으로 원본의 업데이트를 확인합니다.
하지만 브라우저에서 페이지를 새로고침하는 동작만으로 IMPORTRANGE 함수가 즉시 새 외부 요청을 실행한다고 볼 수 없습니다.
수식을 삭제했다가 다시 입력하거나 같은 수식으로 덮어쓰면 외부 함수의 새 요청이 발생할 수 있지만, 이를 짧은 시간마다 반복하면 요청량 제한에 불리할 수 있습니다.
반드시 특정 시각에 데이터를 고정해서 가져와야 하는 업무라면 IMPORTRANGE의 주기적 갱신 방식이 요구사항에 맞는지 검토해야 합니다. 필요한 경우 Apps Script의 시간 기반 작업이나 다른 데이터 연동 구조를 고려할 수 있습니다.
NOW·RAND·RANDBETWEEN으로 갱신을 유도하지 않습니다
가져오기 함수는 NOW, RAND,
RANDBETWEEN처럼 자주 바뀌는 함수가 포함된 셀을 직접
또는 간접적으로 참조할 수 없습니다.
다음처럼 URL이나 범위를 계속 바꾸는 방식은 사용하지 않습니다.
=IMPORTRANGE(
A2&"?time="&NOW(),
B2
)
URL에 임의의 시각값을 붙인 주소는 원본 Google 스프레드시트 URL과도 달라지고 외부 요청을 불필요하게 증가시킬 수 있습니다.
갱신 문제는 원본 계산, 가져오기 수식 수, 데이터 크기와 연결 체인을 확인해 해결합니다.
여러 스프레드시트를 단계적으로 연결하지 않습니다
다음처럼 파일을 여러 단계로 연결할 수 있습니다.
↓ IMPORTRANGE
중간 B
↓ IMPORTRANGE
중간 C
↓ IMPORTRANGE
보고서 D
이 구조에서 원본 A가 바뀌면 B가 먼저 계산되고, 이후 C와 D가 차례로 갱신돼야 합니다.
각 단계가 이전 문서의 계산 완료를 기다리므로 연결이 길어질수록 최종 보고서가 최신 값을 받기까지 지연될 수 있습니다.
가능하다면 최종 보고서가 필요한 원본이나 정리된 공유용 원본을 직접 참조하도록 연결 단계를 줄입니다.
문서가 서로 상대방을 가져오는 순환 연결을 만들지 않습니다
다음 구조는 순환 연결입니다.
문서 B도 IMPORTRANGE로 문서 A의 결과를 가져옴
A의 계산에 B가 필요하고 B의 계산에 다시 A가 필요하므로 어느 문서도 독립적으로 최종 결과를 확정할 수 없습니다.
데이터 흐름을 원본 → 정리 → 보고서처럼 한 방향으로 설계하고 결과 문서가 원본 문서에 다시 값을 제공하지 않도록 구성합니다.
원본의 복사 제한 설정도 확인합니다
원본 스프레드시트에서 다운로드·인쇄·복사 옵션을 사용 중지하면 새로운 IMPORTRANGE 수식으로 데이터를 내보내지 못할 수 있습니다.
이전에 연결한 기존 수식과 새로 연결하려는 수식의 동작이 다르게 보인다면 원본 문서의 공유 설정과 복사 제한이 변경됐는지도 확인합니다.
이 설정은 대상 문서의 함수 문법을 고쳐 해결하는 문제가 아니므로 원본 소유자와 공유 정책을 확인해야 합니다.
오류를 IFERROR로 먼저 숨기지 않습니다
다음 수식은 모든 오류를 동일한 빈칸으로 바꿉니다.
=IFERROR(
IMPORTRANGE(A2,B2),
""
)
연결 승인, 원본 권한 부족, 범위 오타, 로드 지연이 모두 빈칸으로 표시되므로 실제 원인을 확인하기 어렵습니다.
처음 수식을 설정하거나 오류를 진단할 때는 IFERROR를 제거해 원래 오류 문구를 확인합니다.
연결과 범위가 정상임을 확인한 뒤 사용자용 보고서에서만 안내 문구를 추가할 수 있습니다.
=IF(
OR(A2="",B2=""),
"원본 URL과 범위를 입력하세요",
IFERROR(
IMPORTRANGE(A2,B2),
"원본 권한, 연결 승인과 범위를 확인하세요"
)
)
최종 안내 문구도 원래 오류의 세부 원인을 대신하지는 않습니다. 관리용 셀에서는 실제 IMPORTRANGE 오류를 확인할 수 있도록 구성하는 편이 적절합니다.
오류 상태별 첫 번째 확인 위치
| 증상 | 첫 확인 위치 | 수정 방향 |
|---|---|---|
| #REF! 액세스 허용 | 원본 접근 권한과 연결 버튼 | 원본 권한 확인 후 대상 문서에서 승인 |
| 원본에 대한 권한 없음 | 현재 로그인 계정 | 원본 소유자에게 보기 권한 요청 |
| 범위나 시트를 찾지 못함 | 두 번째 인수의 시트명과 셀 주소 | 실제 원본 탭 이름과 범위로 수정 |
| 로드 중 상태가 오래 지속됨 | 가져오는 범위 크기와 외부 함수 수 | 범위 축소와 한 번만 가져오는 구조 적용 |
| 결과가 너무 큼 | 행·열 수와 각 셀의 데이터 크기 | 원본에서 필터·집계 후 작은 결과만 가져오기 |
| 원본 변경이 늦게 반영됨 | 원본 계산과 IMPORTRANGE 연결 체인 | 중간 문서를 줄이고 원본 계산을 단순화 |
| QUERY 결합 후 열을 찾지 못함 | 쿼리문의 열 표기 | A·B·C 대신 Col1·Col2 사용 |
| 결과가 펼쳐지지 않음 | 수식 아래쪽과 오른쪽 출력 영역 | 기존 값·수식·병합 셀 이동 또는 삭제 |
IMPORTRANGE 오류 최종 점검 순서
현재 Google 계정으로 원본 스프레드시트를 열 수 있는지 확인합니다.
A1:A2처럼 작은 범위를 가져와 액세스 허용 버튼을 먼저 확인합니다.
탭 이름의 철자·공백·변경 여부와 셀 주소를 확인합니다.
결과가 표시될 아래쪽과 오른쪽의 기존 값과 수식을 확인합니다.
같은 파일의 다른 탭이라면 일반 범위 참조를 사용합니다.
가져오기 전용 탭에서 한 번만 호출하고 다른 수식은 그 결과를 참조합니다.
필요한 행과 열만 가져오고 원본에서 먼저 필터·집계합니다.
QUERY가 IMPORTRANGE 결과를 직접 받으면 Col1·Col2 형식을 사용합니다.
중간 문서 단계를 줄이고 문서가 서로 상대방을 다시 가져오지 않게 합니다.
원본 연결 후 대상 편집자가 가져올 수 있는 데이터 범위를 고려합니다.
내용 확인에 사용한 Google 공식 자료
공식 문서 확인일: 2026년 7월 29일

댓글 쓰기