구글 시트에서 IMPORTRANGE 함수를 자주 사용하고 있는데 그만큼 오류를 만날 가능성도 높다고 생각한다.

대부분이 자동 업데이트를 위해서 수시로 데이터를 확인하기 위해 해당 함수를 사용할텐데 이럴경우는 그 목적에 맞지 않게 데이터의 즉시성 측면에서 아쉬운 상황들이 많이 있다.

 

구글시트에서 여러 파일의 데이터를 하나로 모아야 할 때

가장 많이 사용하는 함수가 IMPORTRANGE다.

 

특히:

 

  • 팀별 시트를 하나로 집계할 때
  • 자동 보고서를 만들 때
  • 대시보드에 외부 데이터를 연결할 때

 

거의 필수처럼 사용된다.

 

하지만 실무에서 사용하다 보면 다음과 같은 문제가 반복된다.

 

  • 수식은 맞는데 값이 안 불러와짐
  • #REF!, #ERROR! 발생
  • 값은 있는데 공백으로 표시
  • 날짜 조건이 먹지 않음
  • 자동 업데이트가 즉시 되지 않음

 

이 글에서는 단순 오류 정리가 아니라,

왜 이런 문제가 발생하는지 → 어떻게 구조적으로 해결하는지를 정리한다.

 


1️⃣ IMPORTRANGE 함수의 동작 원리부터 이해하기

<IMPORTRANGE 합수 기본 구조>



기본 구조:

=IMPORTRANGE("스프레드시트_URL", "시트명!범위")

 

예시 :

=IMPORTRANGE("https://docs.google.com/xxx","Sheet1!A:C")

 

🔎 내부 동작 방식

 

IMPORTRANGE는:

 

  1. 외부 스프레드시트에 연결 요청
  2. 권한 확인
  3. 지정 범위의 데이터를 배열 형태로 가져옴
  4. 현재 시트에 동적 배열로 출력

 

즉, 단순 복사가 아니라

외부 데이터와 연결된 상태로 유지되는 구조다.

 

그래서:

 

  • 권한 문제가 자주 발생하고
  • 대용량일 경우 지연이 생기며
  • QUERY와 결합 시 타입 문제가 발생한다.

2️⃣ #REF! 오류 – 접근 권한 문제 (가장 흔함)

<#REF! 오류>

📌 증상

  • 셀에 #REF!
  • “연결 허용이 필요합니다” 문구

 

🔎 왜 발생하는가?

IMPORTRANGE는 처음 연결할 때

두 파일 간의 접근을 수동 승인해야 한다.

 

하지만 다음과 같은 구조일 경우 문제가 발생한다.

 

=QUERY(IMPORTRANGE(...), "select ...")

 

QUERY로 감싸면

권한 승인 버튼이 표시되지 않는 경우가 많다.


✅ 해결 방법 (안정적인 순서)

 

1️⃣ 먼저 단독 IMPORTRANGE 실행

=IMPORTRANGE("URL","Sheet1!A:C")

 

2️⃣ 셀 클릭 → “접근 허용” 클릭

3️⃣ 그 다음 QUERY 추가

 


🔧 실무 팁

  • 새로운 파일을 연결할 때는 반드시 IMPORTRANGE 단독 실행 후 결합
  • 팀 단위 자동 보고서 만들 때 이 순서 필수

3️⃣ QUERY와 함께 사용할 때 날짜 오류

📌 자주 발생하는 오류

=QUERY(
  IMPORTRANGE("URL","Sheet1!A:C"),
  "select Col1 where Col1 >= date '2025-01-01'"
)

 

결과: 값 0개 또는 조건 무시


🔎 원인

 

IMPORTRANGE로 가져온 날짜는:

  • 실제 DATE 타입일 수도 있고
  • TEXT로 인식될 수도 있다

 

QUERY는 내부적으로 SQL 형태로 조건을 해석한다.

DATE 타입이 아니면 조건 비교가 실패한다.


✅ 해결 방법 1: date()로 감싸기

where date(Col1) >= date '2025-01-01'

✅ 해결 방법 2: 원본 시트에서 DATE 통일

 

  • 서식 → 날짜 형식 통일
  • 문자열 날짜 제거

📌 실무 시나리오

 

월간 매출 집계 보고서에서

“이번 달 데이터만 가져오기” 조건이 작동하지 않을 때

대부분 TEXT 날짜 문제다.


4️⃣ 값은 있는데 공백으로 나오는 경우

🔎 원인

  • 숨겨진 공백
  • 보이지 않는 특수문자
  • 조건 불일치
  • 실제 값이 아니라 문자열

✅ 체크 방법

=TRIM(A2)
=ISTEXT(A2)
=ISDATE(A2)
=LEN(A2)

특히 외부 시트에서 복붙된 데이터는

눈에 보이지 않는 공백이 포함된 경우가 많다.


5️⃣ 자동 업데이트 지연 문제 (많이 놓치는 부분)

 

IMPORTRANGE는 즉시 반영이 되지 않을 수 있다.

 

🔎 이유

  • Google 서버 캐싱
  • 대용량 범위 호출
  • 중첩 QUERY 사용

✅ 해결 전략

  • 범위를 최소화 (A:A ❌ → A2:F5000 ⭕)
  • 중첩 QUERY 줄이기
  • 필요 시 Apps Script로 강제 갱신

6️⃣ 실무에서 가장 안정적인 패턴

=QUERY(
  IMPORTRANGE("URL","Sheet1!A:F"),
  "select * where Col1 is not null",
  1
)

 

왜 이 패턴이 안정적인가?

  • 헤더 지정
  • NULL 필터링
  • 범위 최소화
  • 권한 승인 후 사용

7️⃣ 오류 유형 요약 표

오류 유형 원인 해결
#REF! 권한 미승인 단독 실행 후 승인
날짜 조건 무시 TEXT 타입 date() 적용
공백 표시 숨은 공백 TRIM
업데이트 지연 대용량 호출 범위 축소

 


📌 최종 체크리스트

 

✔ 먼저 단독 IMPORTRANGE 실행

✔ 접근 허용 클릭

✔ 날짜 타입 통일

✔ 범위 최소화

✔ QUERY 결합은 마지막 단계


마무리

 

IMPORTRANGE 오류의 대부분은

  • 권한 문제
  • 데이터 타입 문제
  • QUERY 조건 문제
  • 호출 범위 과다

 

이 네 가지로 정리된다.

 

실무에서는 함수를 많이 아는 것보다

데이터 구조를 이해하는 것이 더 중요하다.

 

앞으로도

구글시트, BigQuery, Looker Studio를 사용하면서

실제로 막혔던 문제들을 구조적으로 정리해볼 예정이다.

+ Recent posts