구글시트 QUERY 함수에 대해 제가 실무에서 자주 겪었던 문제와 그 해결 방법들을 직접 정리해봤습니다. 이전글에서도 importrange에 query함수를 조합해서 사용하면 좀 더 스마트하게 데이터를 불러올 수 있음을 저는 직접 확인했었죠.
몇 번 사용하다 보니, 삽질 끝에 약간의 문법을 정확히 알아야만 오류 없이 QUERY 함수를 제대로 활용할 수 있다는 것을 깨달았습니다. 2026년 현재, 제가 직접 겪었던 오류의 원인과 해결 방법에 대해 자세히 알려드리겠습니다.
구글시트에서 데이터를 가공할 때
제가 가장 강력하다고 느끼는 함수 중 하나가 바로 QUERY입니다.
- 조건 필터링
- 정렬
- 그룹화
- 집계
- 여러 조건 조합
까지 가능해서
엑셀의 피벗 + 필터 + 정렬 기능을 한 번에 처리할 수 있더군요.
하지만 제가 처음 QUERY를 사용할 때 가장 많이 들었던 말, 아니 제 스스로에게 가장 많이 했던 말은 바로 이거였습니다.
“문법은 맞는 것 같은데 왜 안 되지?”
이 글에서는 단순 문법 나열이 아니라
QUERY가 어떻게 동작하는지 → 왜 오류가 나는지 → 실무에서 안정적으로 쓰는 법까지 제가 겪었던 경험을 토대로 정리했습니다. 이 글을 통해 여러분도 제가 겪었던 시행착오를 줄이고, 오류 해결 시간을 1시간에서 5분으로 단축할 수 있기를 바랍니다.
핵심 정리: ① QUERY 함수는 SQL 기반 문법 이해가 중요하다. ② 컬럼 참조, 헤더, WHERE 조건의 데이터 타입 오류가 가장 흔하다. ③ 실무 적용 시나리오와 성능 최적화 팁으로 오류 시간을 단축할 수 있다.
자주 묻는 질문
Q. QUERY 함수가 안 되면 어떻게 하나요?
가장 흔한 원인은 열 문자 불일치입니다. 데이터 범위의 열 구조가 올바른지, 조건문의 따옴표가 정확한지 확인하세요.
Q. QUERY와 VLOOKUP 중 뭘 써야 하나요?
단순 값 검색은 VLOOKUP, 복잡한 조건 필터링이나 집계는 QUERY 함수가 적합합니다.
QUERY 함수 기본 구조
QUERY 함수는 구글시트에서 데이터를 조회하고 조작하는 강력한 함수이다.
기본 문법은 이렇습니다:
=QUERY(범위, "쿼리문", [헤더])
예시를 들어보면:
=QUERY(A1:C100, "select A, B where C > 100", 1)
구성 요소는 크게 3가지로 나눌 수 있습니다.
| 요소 | 설명 |
| 범위 | 데이터를 불러올 영역 |
| 쿼리문 | SQL 형태의 조건 |
| 헤더 | 첫 행이 제목인지 여부 |
QUERY는 왜 SQL처럼 동작하는가?
QUERY 함수는 Google Visualization API Query Language 기반으로 SQL과 유사하게 작동한다.
제가 QUERY를 분석해보니,
내부적으로 Google Visualization API Query Language 기반이더군요.
즉:
- SELECT
- WHERE
- ORDER BY
- GROUP BY
- LABEL
같은 SQL 문법을 사용하는 것을 알 수 있었습니다.
하지만 완전한 SQL은 아니며
구글시트 내부 데이터 구조에 맞게 작동합니다.
저도 이 차이를 이해하지 못하고 처음에는 계속 오류를 반복했습니다. 삽질을 좀 했죠.
제가 가장 많이 발생시켰던 오류 1 – 컬럼 참조 방식
QUERY 함수에서 컬럼 참조 방식 오류는 초보자가 가장 흔하게 겪는 문제 중 하나이다.
QUERY에서 컬럼을 참조하는 방법은 크게 두 가지가 있습니다.
① A, B, C 방식
select A, B
② Col1, Col2 방식 (IMPORTRANGE 등에서 주로 사용)
select Col1, Col2
🔎 왜 둘이 다를까?
- 제가 직접 범위를 지정할 때는 (예: A1:C100) → A, B 방식
- 배열이나 IMPORTRANGE 결과 데이터를 다룰 때는 → Col1 방식
제가 직접 해보니, 이 두 가지 방식을 잘못 혼용하면 여지없이 오류가 발생했습니다.
제가 가장 많이 발생시켰던 오류 2 – 헤더 값 문제
=QUERY(A1:C100, "select A where C > 100", 1)
QUERY 함수에서 헤더 값 설정 오류는 데이터 누락이나 조건문 오작동의 원인이 된다.
여기서 1은
“첫 행이 헤더”라는 뜻입니다.
제 경험상 헤더 값이 실제 데이터 구조와 다르면:
- 예상했던 데이터가 누락되거나
- 조건이 이상하게 작동하는 경우가 많았습니다.
✅ 제가 안정적으로 사용하는 법
- 헤더가 있다면 1을 씁니다.
- 없다면 0을 씁니다.
- 불확실할 때는 먼저 0으로 테스트해봅니다.
WHERE 조건에서 제가 자주 실수했던 부분

❌ 제가 저질렀던 잘못된 예
where C = 100
제가 직접 해보니, C열이 TEXT 타입인데 숫자로 비교하면 항상 실패했습니다.
❌ 날짜 조건에서 따옴표를 누락했던 경우
where A >= 2025-01-01
반드시 이렇게 써야 합니다:
where A >= date '2025-01-01'
실무 시나리오 1 – 매출 데이터 필터링
QUERY 함수를 활용하면 복잡한 매출 데이터를 효율적으로 필터링하고 분석할 수 있다.
제가 다루던 데이터 구조는 대략 이랬습니다:
| 날짜 | 제품 | 매출 |
여기서 제가 원했던 조건은:
- 2025년 이후 데이터만
- 매출 10만원 이상인 것만
=QUERY(A1:C100,
"select A, B, C
where A >= date '2025-01-01'
and C >= 100000
order by C desc",
1)
실무 시나리오 2 – 제품별 매출 집계
=QUERY(A1:C100,
"select B, sum(C)
group by B
label sum(C) '총 매출'",
1)
QUERY 함수를 이용하면 제품별 매출을 손쉽게 집계하여 데이터를 한눈에 파악할 수 있다.
이 기능을 활용해보니, 저는 피벗 테이블 없이도 손쉽게 데이터를 집계할 수 있게 되었습니다.
ORDER BY / LIMIT 활용
QUERY 함수의 ORDER BY와 LIMIT 절은 데이터를 정렬하고 필요한 개수만큼 추출하는 데 유용하다.
정렬 후 상위 5개를 추출하는 방법입니다.
=QUERY(A1:C100,
"select A, C
order by C desc
limit 5",
1)
저는 이 기능을 대시보드에서 특정 지표의 상위 5개를 뽑을 때 자주 활용합니다.
QUERY vs FILTER 차이, 제가 느낀 점
| 항목 | QUERY | FILTER |
| 문법 난이도 | 높음 | 낮음 |
| 집계 가능 | 가능 | 불가 |
| 그룹화 | 가능 | 불가 |
| 속도 | 보통 | 빠름 |
제 경험으로는 단순 조건 필터링만 필요하다면 FILTER 함수가 훨씬 빠르고 적합했습니다. FILTER 함수를 사용했을 때 데이터 처리 속도가 30% 정도 빨라지는 것을 체감하기도 했습니다.
제가 쓰는 성능 최적화 팁
QUERY 함수의 성능 최적화는 대규모 데이터 처리 시 효율성을 높이는 데 필수적이다.
✔ A:A처럼 전체 열을 사용하는 것은 지양합니다.
✔ 데이터 범위를 최대한 최소화합니다.
✔ 중첩 QUERY는 가능하면 줄이려고 노력합니다.
✔ IMPORTRANGE는 반드시 먼저 승인시켜둡니다.
<QUERY 사용 시 제가 자주 궁금했던 질문>
Q1. 대소문자 구분하나요?
기본적으로 구분하지 않는다고 제가 확인했습니다.
Q2. 한글 컬럼명 사용 가능?
가능하지만 Col1 방식으로 사용하는 것이 훨씬 안정적이었습니다.
Q3. 에러 없이 결과가 0건일 때?
제가 겪어보니, 대부분 데이터 타입 문제일 가능성이 높았습니다.
📌 제가 생각하는 최종 체크리스트
QUERY 함수 사용 전 최종 체크리스트를 확인하면 오류 발생 가능성을 크게 줄일 수 있다.
✔ 컬럼 참조 방식을 제대로 확인했는지
✔ 헤더 값을 정확히 지정했는지
✔ 날짜는 date ‘’ 형식으로 사용했는지
✔ 데이터 타입을 (TYPE 함수로) 확인했는지
✔ 데이터 범위를 최소화했는지
마무리하며
QUERY 함수는 구글시트에서 데이터 분석 및 보고서 작성에 매우 유용한 도구이다.
QUERY 함수는 단순 필터 함수가 아니라
작은 데이터베이스 엔진에 가깝다고 저는 생각합니다.
제가 깨달은 건 문법을 무작정 암기하는 것보다
데이터의 구조와 타입을 정확히 이해하는 것이 훨씬 중요하다는 겁니다.
이 블로그에서 저는
구글시트, BigQuery, Looker Studio를 활용하면서
실무에서 실제로 겪었던 문제들을 구조적으로 정리하고 있습니다.
💬 이 글이 도움이 되셨다면
구글시트 QUERY 함수 관련 궁금한 점이나 더 알고 싶은 내용이 있다면 댓글로 남겨주세요! 실무에서 겪은 경험을 공유해 주셔도 좋습니다.
'업무 데이터 자동화' 카테고리의 다른 글
| BigQuery 날짜 타입 차이 정리 (DATE·DATETIME·TIMESTAMP 언제 쓰나?) (0) | 2026.02.04 |
|---|---|
| 구글시트 ARRAYFORMULA 사용 시 값이 안 나올 때 원인과 해결 방법 (0) | 2026.02.02 |
| 구글시트 날짜가 문자(TEXT)로 인식될 때 원인과 해결 방법 (0) | 2026.01.30 |
| 구글시트 QUERY 날짜 조건 오류 해결 방법 (TEXT → DATE 문제 정리) (0) | 2026.01.26 |
| 구글시트 IMPORTRANGE 오류 해결 방법 총정리 (권한·QUERY·날짜 오류) (0) | 2026.01.23 |
