구글시트 IMPORTRANGE 합치기에 대해 실무에서 자주 겪는 문제와 해결 방법을 정리했습니다. 구글시트에서 여러 파일이나 시트에 흩어진 데이터를
하나의 통합 시트로 관리해야 하는 경우가 많다.
- 팀별 매출 데이터 통합
- 월별 시트 통합
- 지역별 운영 데이터 통합
- 여러 대시보드 소스 병합
이때 가장 많이 사용하는 구조가
IMPORTRANGE + 배열 연산자 {} 조합이다
하지만 단순히 수식을 나열하면
대량 데이터에서 성능 문제, #REF!, 공백 문제 등이 반복된다.
이 글에서는 단순 공식이 아니라
배열 연산자가 실제로 어떻게 동작하는지부터 정리한다.
자주 묻는 질문
Q. 구글시트 IMPORTRANGE 합치기에서 가장 흔한 실수는?
구글시트 IMPORTRANGE 합치기 사용 시 가장 흔한 실수는 기본 설정을 확인하지 않는 것입니다. 공식 문서의 기본 예제부터 따라하는 것을 권장합니다.
Q. 이 방법이 최신 버전에서도 동작하나요?
네, 이 글의 내용은 2026년 기준으로 검증되었습니다. 버전 업데이트에 따라 UI가 다를 수 있으니 참고하세요.
기본 구조 다시 보기
IMPORTRANGE 배열 연산자의 기본 구조는 여러 시트의 데이터를 세로로 통합하는 방식이다.
={
IMPORTRANGE("URL","'시트1'!B2:F");
IMPORTRANGE("URL","'시트2'!B2:F")
}
핵심 요소:
- {} → 배열 묶기
- ; → 세로 결합
- 열 개수 반드시 동일
여기까지는 기본이다.
하지만 중요한 것은
Google Sheets가 이 배열을 “한 번에 평가한다”는 점이다.

배열 연산자의 내부 동작 이해하기
배열 연산자({})는 여러 IMPORTRANGE 결과를 메모리 상에서 하나의 배열로 병합하는 기능을 수행한다.
{}는 단순 묶기가 아니라
“여러 배열을 하나의 새로운 배열로 생성”한다.
즉,
- 첫 번째 IMPORTRANGE 실행
- 두 번째 IMPORTRANGE 실행
- 두 결과를 메모리 상에서 세로로 결합
- 하나의 결과 배열로 반환
이 과정에서:
- 하나라도 오류 → 전체 배열 오류
- 열 개수 불일치 → 즉시 오류
- 접근 권한 미승인 → 전체 실패
IMPORTRANGE 데이터 통합 방식 비교
| 항목 | 단순 배열 연산자({}) 결합 | QUERY와 함께 결합 |
|---|---|---|
| 오류 처리 | 개별 IMPORTRANGE 오류가 전체 결과에 영향 미친다. | QUERY의 `where` 절로 빈 행, `null` 값 등 제거하여 안정적이다. |
| 성능 | 대량 데이터에서 지연 발생 가능성이 높다. | 필터링 및 정렬을 미리 처리하여 성능 최적화에 유리하다. |
| 데이터 정제 | 별도 함수를 사용해야 한다. | QUERY 내에서 조건부 필터링, 컬럼 선택 등으로 쉽게 정제한다. |
| 유연성 | 열 개수 불일치 시 즉시 오류 발생한다. | `select` 절로 열을 재구성하여 열 개수 불일치 문제에 유연하게 대응한다. |
가장 흔한 오류 ① #REF! 접근 권한 문제
이전글 참조 -> 구글시트 IMPORTRANGE 오류 해결 방법 총정리 (권한·QUERY·날짜 오류)
IMPORTRANGE의 #REF! 오류는 주로 연결된 스프레드시트에 대한 접근 권한이 없거나 승인되지 않았을 때 발생한다.
IMPORTRANGE는 최초 1회 접근 승인 필요.
안전 패턴:
- 각 IMPORTRANGE를 단독 실행
- “액세스 허용” 클릭
- 그 후 배열 결합
QUERY와 바로 결합하면
승인 버튼이 안 뜰 수 있다.
가장 흔한 오류 ② 열 개수 불일치
IMPORTRANGE로 여러 데이터를 합칠 때 발생하는 열 개수 불일치 오류는 각 IMPORTRANGE 범위의 열 수가 서로 다를 때 나타난다.
예:
- 시트1: B2:F (5열)
- 시트2: B2:E (4열)
→ 배열 결합 불가
해결:
- 범위 통일
- QUERY로 열 맞춤
가장 흔한 오류 ③ 데이터는 있는데 공백
IMPORTRANGE로 가져온 데이터에 공백이 발생하는 현상은 숨겨진 공백 문자, 데이터 타입 불일치, 또는 특정 조건 미달성 시 나타나는 문제이다.
기존 글 참조 -> 구글시트 QUERY 함수 기본 문법과 자주 발생하는 오류 정리
원인:
- 숨겨진 공백
- TEXT 숫자 혼합
- 날짜 타입 불일치
해결:
=QUERY(
{
IMPORTRANGE("URL","시트1!B2:F");
IMPORTRANGE("URL","시트2!B2:F")
},
"select * where Col1 is not null",
1
)
이 방식이 가장 안정적이다.
대량 데이터에서 발생하는 성능 문제
IMPORTRANGE를 대량 데이터에 사용할 때 발생하는 성능 문제는 실시간 호출의 부하, 복잡한 중첩 함수 등으로 인해 계산 지연을 초래하는 현상이다.
IMPORTRANGE는 실시간 호출이다.
문제 상황:
- 5개 이상 파일 결합
- 각 파일 5,000행 이상
- QUERY 중첩
증상:
- 계산 지연
- “결과를 가져오는 중…” 반복
- 타임아웃
✔ 성능 최적화 방법
✔ 전체 열 참조 지양 (B:B 금지)
✔ 필요한 범위만 지정
✔ QUERY로 빈 행 제거
✔ 중간 집계 시트 분리
✔ IMPORTRANGE 최소화
핵심 정리: ① IMPORTRANGE는 반드시 권한 승인 후 사용한다. ② 여러 시트 통합 시 열 개수를 항상 일치시킨다. ③ QUERY 함수로 불필요한 공백과 빈 행을 효과적으로 제거한다.
실무 설계 패턴
IMPORTRANGE 실무 설계 패턴은 실제 비즈니스 요구사항에 맞춰 여러 스프레드시트의 데이터를 효율적으로 통합하는 방법론이다.
📌 패턴 1 – 월별 시트 통합
월별 시트 통합은 매달 생성되는 시트의 데이터를 하나의 통합 시트로 모아 관리하는 패턴이다.
1월 시트, 2월 시트, 3월 시트
={
IMPORTRANGE("URL","1월!A2:E");
IMPORTRANGE("URL","2월!A2:E");
IMPORTRANGE("URL","3월!A2:E")
}
→ 통합 매출 대시보드 생성
📌 패턴 2 – 팀별 데이터 통합
팀별 데이터 통합은 서로 다른 팀에서 관리하는 스프레드시트의 데이터를 한곳으로 모아 분석하는 패턴이다.
- 마케팅 시트
- 영업 시트
- 운영 시트
통합 후:
- QUERY로 조건 필터
- COUNTUNIQUE로 KPI 계산
QUERY와 함께 사용할 때의 핵심
QUERY 함수를 IMPORTRANGE 배열과 함께 사용할 때는 원본 열 이름 대신 Col1, Col2와 같은 가상 열 이름을 사용해야 한다.
배열 내부에서는 열 이름 대신
Col1, Col2 방식 사용
이전글 보기 -> 구글시트 QUERY 함수 기본 문법과 자주 발생하는 오류 정리
예:
=QUERY(
{
IMPORTRANGE("URL1","A2:E");
IMPORTRANGE("URL2","A2:E")
},
"select Col1, Col3 where Col2 = '완료'",
1
)
세로 결합 vs 가로 결합
배열 연산자에서 세로 결합은 데이터를 행 방향으로 쌓는 것이고, 가로 결합은 열 방향으로 데이터를 나란히 배치하는 것이다.
세로 결합:
;
가로 결합:
,
예:
={A1:A5 , B1:B5}
실무에서는 세로 결합이 대부분이지만
가로 결합도 상황에 따라 유용하다.
확장 패턴
IMPORTRANGE 확장 패턴은 단순 데이터 통합을 넘어 데이터 웨어하우스 구축 전 단계나 자동 리포트 생성 등 고급 활용 방안을 의미한다.
이 구조는 단순 통합을 넘어:
- 데이터 웨어하우스 전 단계
- BigQuery 적재 전 중간 레이어
- 자동 리포트 생성
으로 확장 가능하다.
📌 최종 체크리스트
✔ 열 개수 일치하는가
✔ 접근 승인 완료했는가
✔ 전체 열 참조하지 않았는가
✔ QUERY로 빈 행 제거했는가
✔ 대량 데이터라면 중간 집계 시트 분리했는가
마무리
IMPORTRANGE + {} 배열 연산자는
단순한 결합 수식이 아니라
데이터 통합 구조의 시작점이다.
문제가 생기면 함수가 아니라
배열 평가 구조부터 점검해야 한다.
이 블로그에서는
구글시트, BigQuery, 데이터 연결 과정에서
실무에서 반복되는 구조적 문제를 정리하고 있다.
💬 이 글이 도움이 되셨다면
구글시트 IMPORTRANGE 합치기 관련 궁금한 점이나 더 알고 싶은 내용이 있다면 댓글로 남겨주세요! 실무에서 겪은 경험을 공유해 주셔도 좋습니다.
