반복업무 자동화
구글 시트 함수로 자동 집계표 만들기 (IMPORTRANGE, QUERY)
- 데네브 17일 전 2026.10.27 16:51 일반
-
31
0
구글 시트 함수로 자동 집계표 만들기 (IMPORTRANGE, QUERY)
지난 글에서는 엑셀 매크로 기록으로 반복 작업을 자동화했습니다.
이번에는 구글 시트로 넘어가 보겠습니다.
여러 사람이나 여러 지점이 각자 시트에 데이터를 입력하고, 누군가 그걸 매번 복사해 한 파일로 모으고 있다면 이 글이 도움이 될 겁니다.
구글 시트의 IMPORTRANGE와 QUERY 함수를 함께 쓰면, 여러 파일의 데이터를 자동으로 불러와 원하는 형태로 집계하는 표를 만들 수 있습니다. 한 번 만들어 두면 원본에 데이터가 추가될 때마다 집계표도 알아서 업데이트됩니다. 매크로처럼 실행 버튼을 누를 필요도 없습니다.
1. 왜 구글 시트로 집계할까?
엑셀 파일로 데이터를 모으면 보통 이런 과정을 거칩니다.
- 각 담당자에게 파일을 메일로 받는다
- 파일을 하나씩 열어 데이터를 복사한다
- 집계용 파일에 붙여넣고 합계를 낸다
- 누가 수정하면 처음부터 다시 한다
구글 시트는 파일이 클라우드에 있어서 다른 파일의 데이터를 실시간으로 가져올 수 있습니다. 각자 자기 시트에 입력만 하면, 집계표는 항상 최신 상태를 유지합니다.
2. 실습 예제: 지점별 주문 데이터를 한 곳에 모으기
세 개 지점(강남, 홍대, 판교)이 각자 구글 시트에 주문 내역을 입력한다고 가정해 보겠습니다. 세 파일 모두 같은 구조로 되어 있습니다.
목표는 본사용 집계 시트 하나에서 다음을 자동으로 보는 것입니다.
- 세 지점의 전체 주문 내역
- 상품별 매출 합계
- 지점별 매출 합계
◎ 여러 파일을 모을 때는 열 순서와 구성을 똑같이 맞추는 것이 가장 중요합니다. 각 파일에 "지점" 열을 넣어두면 합친 뒤에도 어느 지점 데이터인지 구분할 수 있습니다.
3. IMPORTRANGE: 다른 파일의 데이터 불러오기
기본 사용법
=IMPORTRANGE("스프레드시트 URL", "시트이름!범위")
- 첫 번째 값: 불러올 구글 시트의 주소(URL). 주소창의 전체 URL을 복사해 넣으면 됩니다.
- 두 번째 값: 불러올 시트 이름과 범위. 큰따옴표 안에 적습니다.
예를 들어 강남점 파일의 "주문" 시트에서 A열~E열을 불러오려면 다음과 같이 씁니다.
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/강남점파일주소", "주문!A1:E")
범위를 A1:E100처럼 끝 행을 정하지 않고 A1:E로 쓰면, 나중에 추가되는 행까지 자동으로 포함됩니다.
처음 한 번은 "액세스 허용"이 필요해요
함수를 처음 입력하면 셀에 #REF! 오류가 표시됩니다. 셀에 마우스를 올리면 [액세스 허용] 버튼이 나타나는데, 이를 클릭하면 데이터가 불러와집니다. 다른 파일의 데이터를 가져오는 것이라 보안상 한 번 확인하는 절차입니다.
- 원본 파일 하나당 한 번만 허용하면 됩니다.
- 집계 시트를 만드는 사람에게 원본 파일의 보기 권한 이상이 있어야 합니다.
4. 여러 파일을 하나로 합치기
세 지점 데이터를 위아래로 이어 붙이려면 중괄호 { }와 세미콜론 ;을 사용합니다.
={IMPORTRANGE("강남점URL", "주문!A2:E"); IMPORTRANGE("홍대점URL", "주문!A2:E"); IMPORTRANGE("판교점URL", "주문!A2:E")}
- 세미콜론(
;)은 아래로 이어 붙이기, 쉼표(,)는 옆으로 이어 붙이기입니다. - 머리글이 반복되지 않도록 범위를 A2부터 시작했습니다. 머리글은 집계 시트 첫 행에 직접 입력하세요.
- 최신 구글 시트에서는
VSTACK함수로도 같은 작업을 할 수 있습니다.
그런데 이렇게 합치면 문제가 하나 있습니다. 각 파일의 A2:E 범위에는 아직 입력되지 않은 빈 행까지 포함되어 있어서, 강남점 데이터 아래에 빈 행이 잔뜩 생긴 뒤에야 홍대점 데이터가 나옵니다. 이 문제를 QUERY 함수로 깔끔하게 해결할 수 있습니다.
5. QUERY: 원하는 데이터만 골라 집계하기
기본 사용법
=QUERY(데이터, "쿼리문", 머리글 행 수)
QUERY는 데이터 범위에 ”어떤 열을, 어떤 조건으로, 어떻게 묶어서 보여줘"라고 명령하는 함수입니다. 쿼리문은 몇 가지 영어 단어만 알면 충분합니다.
꼭 기억할 규칙: A, B가 아니라 Col1, Col2
QUERY에서 열을 부를 때, 같은 시트의 범위라면 A, B처럼 열 문자를 씁니다. 하지만 IMPORTRANGE나 중괄호 { }로 가져온 데이터는 Col1, Col2처럼 순서 번호로 불러야 합니다. (대소문자 구분: C는 대문자, ol은 소문자)
이 예제에서는 다음과 같습니다.
- Col1 = 날짜, Col2 = 지점, Col3 = 상품, Col4 = 수량, Col5 = 금액
6. 실전 집계표 만들기
① 빈 행 없이 전체 주문 내역 합치기
=QUERY({IMPORTRANGE("강남점URL", "주문!A2:E"); IMPORTRANGE("홍대점URL", "주문!A2:E"); IMPORTRANGE("판교점URL", "주문!A2:E")}, "select * where Col1 is not null order by Col1", 0)
where Col1 is not null: 날짜가 비어 있지 않은 행만 → 빈 행 제거order by Col1: 날짜순으로 정렬- 마지막
0: 가져온 데이터에 머리글 행이 없다는 뜻
② 상품별 매출 합계
=QUERY({IMPORTRANGE("강남점URL", "주문!A2:E"); IMPORTRANGE("홍대점URL", "주문!A2:E"); IMPORTRANGE("판교점URL", "주문!A2:E")}, "select Col3, sum(Col4), sum(Col5) where Col1 is not null group by Col3 order by sum(Col5) desc label Col3 '상품', sum(Col4) '총수량', sum(Col5) '매출합계'", 0)
결과는 이런 형태로 자동 생성됩니다.
③ 지점별 매출 합계
②번 수식에서 Col3을 Col2(지점)로 바꾸기만 하면 됩니다.
"select Col2, sum(Col5) where Col1 is not null group by Col2 label Col2 '지점', sum(Col5) '매출합계'"
④ 특정 기간만 보기
날짜 조건은 date '연-월-일' 형식으로 씁니다.
"select Col2, sum(Col5) where Col1 >= date '2026-10-01' and Col1 <= date '2026-10-31' group by Col2"
이 조건이 제대로 동작하려면 원본의 날짜 열이 텍스트가 아닌 날짜 형식이어야 합니다. 원본 시트에서 [서식] → [숫자] → [날짜]로 맞춰 두세요.
7. 수식을 더 편하게 관리하는 팁
URL은 셀에 따로 적어두기
긴 URL을 수식마다 넣으면 읽기 어렵고 수정도 번거롭습니다. 집계 파일에 "설정" 시트를 만들어 URL을 적어두고 셀로 참조하세요.
=IMPORTRANGE(설정!B1, "주문!A2:E")
지점이 추가되거나 파일이 바뀌어도 설정 시트만 고치면 됩니다.
원본 불러오기와 집계를 나누기
같은 IMPORTRANGE를 여러 수식에서 반복하면 시트가 느려집니다. "전체데이터" 시트에 ①번 수식으로 한 번만 불러오고, 다른 집계표는 이 시트를 참조하는 방식이 효율적입니다.
=QUERY(전체데이터!A2:E, "select C, sum(E) where A is not null group by C", 0)
같은 파일 안의 범위이므로 이때는 Col3 대신 C처럼 열 문자를 씁니다.
8. 자주 만나는 오류와 해결법
9. 주의할 점
- 원본의 열 순서를 바꾸면 집계가 틀어집니다. 지점 담당자들에게 "열을 추가하거나 순서를 바꾸지 말 것"을 미리 안내하세요. 열을 추가해야 한다면 맨 오른쪽에 추가하는 것이 안전합니다.
- 입력 형식을 통일하세요. "라떼"와 "카페라떼"는 다른 상품으로 집계됩니다. 원본 시트에 [데이터] → [데이터 확인(드롭다운)]을 걸어두면 입력 실수를 줄일 수 있습니다.
- 공유 권한을 확인하세요. 집계 시트를 다른 사람에게 공유하면, 원본 파일 권한이 없는 사람도 불러온 데이터를 볼 수 있습니다. 민감한 정보가 포함되어 있다면 공유 범위를 신중하게 정하세요.
- 반영까지 약간의 시간차가 있을 수 있습니다. 원본 변경이 집계 시트에 반영되는 데 잠시 걸리기도 합니다.
마무리
IMPORTRANGE로 흩어진 데이터를 모으고, QUERY로 원하는 형태로 집계하면 복사·붙여넣기 없이 항상 최신 상태의 집계표를 가질 수 있습니다. 처음 수식을 만드는 데 30분 정도 걸리더라도, 그 뒤로는 매주 하던 취합 작업이 사라집니다.
이 글의 핵심을 정리하면 다음과 같습니다.
- 원본 파일들의 열 구조를 똑같이 맞춘다
- IMPORTRANGE로 불러오고, 처음 한 번 [액세스 허용]
- { ; }로 여러 파일을 이어 붙인다
- QUERY로 빈 행 제거, 집계, 정렬
- IMPORTRANGE 데이터는 Col1, Col2로 부른다
- 이전글구글 앱스 스크립트 입문: 시트 데이터를 메일로 자동 발송2026.10.29
- 다음글엑셀 매크로 기록으로 반복 작업 1분 만에 끝내기2026.10.27
댓글목록
등록된 댓글이 없습니다.