다른 구글 시트의 데이터를 가져오는 IMPORTRANGE는 편한데, 오류가 자주 납니다.
원인이 다섯 가지 안에 있고 첫 번째가 압도적입니다.
기본 형태
=IMPORTRANGE("스프레드시트_URL_또는_ID", "시트이름!A1:D100")
두 번째 인수는 따옴표로 감싼 문자열입니다. 셀 참조처럼 그냥 쓰면 안 됩니다.
1. 권한 허용을 안 눌렀다 (대부분 이겁니다)
수식을 처음 입력하면 셀에 #REF!가 뜨고, 셀을 클릭하면 액세스 허용 버튼이 나타납니다.
이걸 눌러야 데이터가 들어옵니다.
버튼이 안 보인다면 셀에 마우스를 올려보세요. 작은 알림 창으로 나타납니다. 한 번 허용하면 그 파일 조합은 계속 유지됩니다.
여기서 한 가지 짚고 갈 게 있습니다. 구글 공식 문서에 따르면 한 번 액세스를 허용하면 그 권한은 대상 스프레드시트의 편집자 전원에게 적용됩니다. 내가 허용한 것이지만 같은 파일을 편집할 수 있는 사람은 누구나 그 데이터를 쓸 수 있게 된다는 뜻이에요. 아래 「권한 관리에 주의하세요」에서 이어서 설명합니다.
원본 시트에 접근 권한이 없으면 허용 버튼을 눌러도 안 됩니다. 원본 파일 소유자에게 최소한 보기 권한을 받으셔야 해요.
2. 범위 문자열이 틀렸다
두 번째 인수는 대소문자와 공백까지 정확해야 합니다.
"시트1!A1:D100" ← 시트 이름이 정확해야 함
"Sheet1!A1:D100"
시트 이름에 공백이나 특수문자가 있으면 작은따옴표로 감쌉니다.
"'매출 데이터'!A1:D100"
시트 이름을 바꾸면 수식도 같이 고쳐야 합니다. 엑셀과 달리 자동으로 안 따라갑니다.
3. 결과가 들어갈 자리에 데이터가 있다
IMPORTRANGE는 여러 셀에 걸쳐 펼쳐지는 함수입니다.
수식을 넣은 셀 아래·오른쪽에 불러올 데이터만큼 빈 칸이 있어야 합니다. 뭔가 입력돼 있으면 오류가 나요.
이때는 #REF!와 함께 “결과가 겹칩니다” 같은 안내가 뜹니다. 아래쪽 셀을 비우면 해결됩니다.
4. 로딩이 끝나지 않는다
로드 중...이 계속 뜨는 경우입니다.
IMPORT 계열 함수를 너무 많이 쓰면 생깁니다. IMPORTRANGE, IMPORTHTML, IMPORTDATA, IMPORTXML을 합쳐서 개수를 줄여야 해요.
해결 방법
- 여러 개의
IMPORTRANGE를 하나로 합치세요. 범위를 넓게 잡아 한 번에 가져오는 게 낫습니다 - 자주 안 바뀌는 데이터는 값으로 붙여넣기 해서 고정하세요
- 원본이 너무 크면 필요한 열만 가져오세요
5. 원본 파일이 삭제되거나 이동됐다
URL이 바뀌면 연결이 끊깁니다. 원본 시트를 확인하고 URL을 다시 넣으세요.
필요한 것만 가져오기
전체를 가져와서 다시 거르지 말고, 처음부터 조건에 맞는 것만 가져오면 훨씬 가볍습니다.
=QUERY(IMPORTRANGE("URL", "시트1!A:D"), "select Col1, Col3 where Col2 = '서울'", 1)
IMPORTRANGE를 QUERY로 감싸는 형태입니다. 열 이름이 Col1, Col2로 바뀐다는 점만 주의하시면 됩니다.
QUERY 함수 사용법은 구글 시트 QUERY 함수 기초 글에 정리했습니다.
엑셀에는 없는 기능입니다
엑셀에서 다른 파일을 참조하려면 그 파일이 같은 컴퓨터에 있어야 하고, 경로가 바뀌면 #REF! 오류가 납니다.
IMPORTRANGE는 클라우드에 있는 다른 사람의 시트도 실시간으로 가져옵니다. 여러 사람이 각자 시트를 관리하고 하나로 모아 볼 때 유용해요.
권한 관리에 주의하세요
IMPORTRANGE로 연결하면 원본 시트의 데이터가 대상 시트로 흘러갑니다.
대상 시트를 다른 사람과 공유하면, 그 사람은 원본 시트 권한이 없어도 가져온 데이터는 볼 수 있습니다.
민감한 정보가 있는 시트를 연결할 때는 이 점을 꼭 확인하세요. 공유 설정은 구글 시트 공유 권한 제대로 설정하기 글에서 자세히 다뤘습니다.