구글 스프레드시트 QUERY 함수 기초: SQL 스타일로 대용량 데이터 필터링하는 법

구글 스프레드시트에서 대용량 데이터를 다룰 때 FILTER, SORT, SUMIF, 피벗 테이블을 여러 개 조합해 처리하던 방식은 유지보수가 어렵고 연산 부담이 크다. QUERY 함수는 이 모든 작업을 SQL과 유사한 단일 문자열로 통합하여 필터링·정렬·집계·재구성을 한 번에 수행한다. 본 글은 2026년 7월 기준 QUERY 함수의 최신 동작 방식과 실무 적용법을 백과사전식으로 정리한다.

1. 기본 개념 및 정의

QUERY 함수는 구글 시트 내부에서 'Google Visualization API Query Language(구글 시각화 API 쿼리 언어, 이하 GVQL)'를 실행하는 함수다. 이는 관계형 데이터베이스에서 사용하는 표준 SQL을 그대로 사용하는 것이 아니라, SQL의 문법 구조를 차용한 별도의 경량 질의 언어다. 따라서 SQL 경험자에게는 진입 장벽이 낮으나, 완전히 동일한 언어가 아니라는 점을 전제로 접근해야 한다.

기본 구문은 다음과 같이 세 개의 인수로 구성된다.

  • data: 질의 대상이 되는 데이터 범위 또는 명명된 범위(Named Range)를 지정한다. 다른 시트를 참조할 경우 시트명을 작은따옴표로 감싼 뒤 범위를 붙인다. 예를 들어 시트명에 공백이 있으면 작은따옴표는 필수다.
  • query: GVQL 문법으로 작성한 질의문을 큰따옴표로 감싼 문자열이다. 별도 셀에 질의문을 작성하고 그 셀을 참조하는 방식도 허용된다.
  • headers: 원본 데이터의 머리글 행 개수를 지정하는 선택 인수다. 대부분의 실무 데이터는 머리글이 한 줄이므로 숫자 1을 사용하며, 생략 시 시트가 자동 판별한다.

2026년 7월 기준으로 GVQL은 총 11개의 절(clause)을 지원하며, 이 명세는 2026년 상반기까지 변경 없이 유지되고 있다. 지원 절은 select, where, group by, pivot, order by, skipping, limit, offset, label, format, options이다. 이 절들은 반드시 명세에 정의된 순서대로 배치해야 하며 순서를 어기면 오류가 발생한다.

QUERY 함수의 근본적 특성은 원본 데이터를 변형하지 않는다는 점이다. 함수는 GVQL 질의를 구글 시트 API에 전달하고, 조건에 부합하는 결과 집합만을 반환한다. 원본은 그대로 보존되고 결과는 수식이 입력된 셀을 기준으로 스필(spill)되어 자동 확장된다. 원본 데이터가 갱신되면 결과도 실시간으로 재계산되므로, 수동 갱신이 필요한 정적 피벗 테이블과 근본적으로 구별된다.

2. 핵심 활용 방법 및 단계별 가이드

2-1. 열 선택과 조건 필터링의 실행 방법

QUERY 함수 학습의 출발점은 select 절이다. 열은 헤더 이름이 아니라 A, B, C와 같은 열 문자로 참조한다. 모든 열을 반환하려면 별표를 사용해 select *로 작성하고, 특정 열만 원하는 순서로 가져오려면 select B, D처럼 명시한다. 이때 반환 순서는 원본 순서가 아니라 질의문에 나열한 순서를 따른다.

행 필터링은 where 절이 담당한다. 예를 들어 A열의 값이 10을 초과하는 행만 추출하려면 where A > 10을 사용한다. 문자열 조건은 작은따옴표로 감싸며 대소문자를 구분한다. 부분 문자열 검색에는 contains, 와일드카드 패턴 검색에는 like 연산자를 활용한다. like에서는 퍼센트 기호가 임의의 문자열을 대체하는 와일드카드로 작동한다.

집계는 group by 절과 집계 함수의 조합으로 수행한다. 사용 가능한 집계 함수는 sum, count, avg, max, min이다. 부서별 매출 합계를 구하려면 select E, sum(D) group by E와 같이 작성하며, 여기에 order by sum(D) desc를 추가하면 합계 기준 내림차순 정렬이 적용된다. 이 단일 수식은 기존의 SUMIF 연쇄와 보조 열, 피벗 테이블 재구성을 한꺼번에 대체한다.

데이터를 열 방향으로 재구성하는 pivot 절은 특정 열의 고유값을 개별 결과 열로 펼친다. 이는 피벗 테이블과 동일한 효과를 수식만으로 구현하며 원본 갱신 시 자동으로 반영된다는 점에서 강력하다.

2-2. 날짜 처리와 동적 질의 작성 시 주의사항

QUERY 함수에서 가장 빈번한 오류는 날짜 처리에서 발생한다. GVQL 명세는 날짜 리터럴을 반드시 date 'YYYY-MM-DD' 형식의 문자열로 작성하도록 요구한다. 셀 참조나 시리얼 숫자를 날짜 조건에 직접 넣으면 인식되지 않는다. 예를 들어 2026년 1분기 데이터만 추출하려면 where A >= date '2026-01-01' and A < date '2026-04-01'처럼 명시적 날짜 리터럴을 사용해야 한다.

날짜 조건을 동적으로 바꾸려면 문자열 연결이 필요하다. TEXT 함수로 셀의 날짜를 "yyyy-mm-dd" 서식의 문자열로 변환한 뒤 앰퍼샌드로 질의문에 결합한다. 이 문자열 연결 방식은 시트명, 임계값, 카테고리 조건 등 모든 동적 요소에 동일하게 적용되며, 따옴표의 개폐를 정확히 맞추는 것이 핵심이다. 실무에서 QUERY의 진짜 난도는 함수 자체가 아니라 이 질의 문자열 조립의 정밀함에 있다.

2026년에 도입된 구글 시트의 정식 '테이블(Tables)' 기능과 함께 사용할 때는 열 참조 방식에 변화가 생긴다는 점에 유의해야 한다. 일반 범위에서는 A, B, C 문자로 참조하지만, 테이블 객체를 대상으로 할 때는 Col1, Col2와 같은 표기를 요구하는 경우가 있다. 또한 QUERY의 반환값은 순수한 값의 집합이므로, 다중 선택 드롭다운의 '칩(chip)' 형태나 테이블의 자동 필터 같은 시각적 기능은 결과에 보존되지 않고 쉼표로 구분된 텍스트로 평탄화된다.

3. 실무 적용 및 자주 묻는 질문

  • 대용량 데이터의 성능 한계: 구글 스프레드시트의 하드 셀 한도는 파일당 1,000만 셀이다. 이 한도에 근접한 범위에 QUERY를 적용하면 연산이 급격히 느려진다. 단일 셀 조회나 성능이 극도로 중요한 경우에는 QUERY 대신 SUMIFS 계열을 사용하는 편이 유리하다.
  • 다른 파일 참조 방법: 동일 파일 내 다른 시트는 시트명을 작은따옴표로 감싸 참조하면 된다. 완전히 다른 스프레드시트 파일의 데이터를 질의하려면 IMPORTRANGE 함수를 data 인수 안에 중첩한다. 예를 들어 QUERY(IMPORTRANGE(url, 범위), "select *") 구조로 파일 간 질의가 가능하다.
  • 오류 디버깅 절차: 질의가 작동하지 않을 때는 먼저 select * 만으로 전체를 반환시켜 데이터 참조가 정상인지 확인한 뒤, 절을 하나씩 추가하며 오류를 유발하는 지점을 좁히는 방식이 효과적이다. 흔한 오류는 큰따옴표와 작은따옴표의 혼동, 절 순서 위반, 하나의 열에 문자와 숫자가 섞여 데이터 유형이 자동으로 다수 유형으로 강제 판정되는 경우다.
  • QUERY와 FILTER의 구분: FILTER 함수는 단순한 행 필터링에 더 빠르다. 반면 QUERY는 필터링에 더해 정렬, 그룹화, 집계, 개수 제한, 레이블 재지정까지 단일 수식으로 처리한다. 단순 추출은 FILTER, 재구성과 요약이 필요하면 QUERY를 선택하는 것이 합리적이다.
  • 2026년 환경의 보완 도구: 2026년 현재 구글 시트는 Gemini 사이드바를 통한 자연어 데이터 분석, =AI() 함수, BigQuery 연동을 위한 Connected Sheets를 제공한다. 다만 이러한 인공지능 기능의 산출값은 캐시되지 않고 결과가 변동될 수 있으므로, 감사 추적과 재현성이 중요한 정형 데이터 처리에서는 여전히 QUERY 함수가 기준점 역할을 한다.

[결론]

QUERY 함수는 데이터를 문자로 지정하는 GVQL 질의를 통해 필터·정렬·집계·재구성을 단일 수식으로 통합하는 구글 시트의 핵심 도구다. 열은 문자로 참조하고, 절은 정해진 순서로 배치하며, 날짜는 반드시 date 리터럴로 표기한다는 세 가지 원칙만 준수해도 대부분의 실무 데이터 처리를 자동 갱신되는 형태로 구현할 수 있다. 1,000만 셀 한도와 데이터 유형 일관성만 유의한다면, QUERY는 반복적 수작업을 제거하는 가장 효율적인 선택지로 기능한다.

댓글

이 블로그의 인기 게시물

엑셀 파일 용량 줄이기: 보이지 않는 유령 셀 삭제 및 수식 데이터 최적화 가이드

구글 캘린더(Calendar) 일정 예약 페이지 기능으로 외부 미팅 조율 프로세스 자동화하기

엑셀 INDEX와 MATCH 함수 조합을 활용하여 VLOOKUP 함수의 단점 극복하기