구글시트 QUERY 함수 사용법, 조건에 맞는 데이터만 자동으로 추리기

구글시트 QUERY 함수 사용법, 조건에 맞는 데이터만 자동으로 추리기

구글시트 QUERY 함수는 표 전체에서 필요한 열만 선택하거나 특정 조건에 맞는 행만 골라 새로운 표처럼 보여줄 때 유용합니다.

예를 들어 주문 데이터에서 서울 지역 주문만 보기, 매출이 일정 금액 이상인 항목만 추리기, 날짜순으로 정렬하기, 상위 10개만 보여주기 같은 작업을 하나의 수식으로 처리할 수 있습니다.

Google은 QUERY 함수를 지정한 데이터 범위에 Google Visualization API Query Language 쿼리를 실행하는 함수로 설명합니다.

기본 문법은 다음과 같습니다.

=QUERY(data, query, [headers])

처음 보면 SQL처럼 보여 어렵게 느껴질 수 있지만 실제로 자주 쓰는 명령은 몇 가지뿐입니다.

1. QUERY 함수 기본 구조부터 이해하기

예를 들어 A1 범위에 다음과 같은 데이터가 있다고 가정해보겠습니다.

A열B열C열D열
날짜상품명지역매출
8/1키보드서울50000
8/2마우스부산30000
8/3모니터서울250000

전체 데이터를 그대로 가져오려면 다음처럼 작성할 수 있습니다.

=QUERY(A1:D100,"select *",1)

각 부분은 다음 의미입니다.

부분의미
A1:D100분석할 데이터 범위
"select *"모든 열 선택
1첫 번째 행이 제목 행이라는 의미

Google 공식 도움말에서도 QUERY의 기본 인수를 dataqueryheaders로 설명하고 있습니다.

2. 원하는 열만 가져오는 select

QUERY에서 가장 먼저 익힐 명령은 select입니다.

예를 들어 상품명과 매출만 표시하고 싶다면

=QUERY(A1:D100,"select B,D",1)

처럼 작성합니다.

결과에는 B열과 D열만 표시됩니다.

여러 열을 선택할 때는 쉼표로 구분합니다.

select A,B,D

처럼 사용할 수 있습니다.

3. 조건을 걸 때는 where 사용하기

특정 조건에 맞는 데이터만 보고 싶다면 where를 사용합니다.

예를 들어 서울 지역 데이터만 추리려면

=QUERY(A1:D100,"select * where C = '서울'",1)

처럼 작성합니다.

문자 조건은 작은따옴표로 감싸는 것이 중요합니다.

숫자 조건은 따옴표 없이 작성합니다.

예를 들어 매출이 100000 이상인 행만 가져오려면

=QUERY(A1:D100,"select * where D >= 100000",1)

처럼 사용할 수 있습니다.

4. 여러 조건을 동시에 사용할 때

두 조건을 모두 만족해야 한다면 and를 사용합니다.

예를 들어 서울 지역이면서 매출이 100000 이상인 행만 보고 싶다면

=QUERY(A1:D100,"select * where C = '서울' and D >= 100000",1)

처럼 작성합니다.

둘 중 하나만 만족해도 된다면 or를 사용할 수 있습니다.

예:

=QUERY(A1:D100,"select * where C = '서울' or C = '부산'",1)

조건이 많아질수록 괄호와 따옴표 위치를 잘 확인해야 합니다.

5. 특정 단어가 포함된 값 찾기

텍스트에 특정 단어가 들어간 행만 추리고 싶다면 contains를 사용할 수 있습니다.

예를 들어 상품명에 마우스라는 단어가 포함된 행만 가져오려면

=QUERY(A1:D100,"select * where B contains '마우스'",1)

처럼 작성합니다.

정확히 일치하지 않아도 해당 단어가 포함되어 있으면 결과에 표시됩니다.

6. 빈칸이 아닌 행만 추리기

실무에서 QUERY를 사용할 때 매우 자주 쓰는 조건입니다.

A열에 값이 있는 행만 가져오고 싶다면

=QUERY(A1:D100,"select * where A is not null",1)

처럼 작성합니다.

반대로 빈칸인 행만 보고 싶다면

where A is null

을 사용할 수 있습니다.

빈 행이 많은 관리 시트에서 필요한 데이터만 깔끔하게 정리할 때 유용합니다.

7. 정렬할 때는 order by 사용하기

QUERY 결과를 특정 열 기준으로 정렬할 수 있습니다.

예를 들어 매출이 높은 순서대로 정렬하려면

=QUERY(A1:D100,"select * order by D desc",1)

처럼 작성합니다.

desc는 내림차순입니다.

반대로 낮은 순서대로 정렬하려면

asc

를 사용합니다.

=QUERY(A1:D100,"select * order by D asc",1)

처럼 작성할 수 있습니다.

8. 조건과 정렬을 함께 쓰기

QUERY의 장점은 여러 기능을 한 수식 안에서 조합할 수 있다는 점입니다.

예를 들어 서울 지역만 추린 뒤 매출이 높은 순서로 정렬하려면

=QUERY(A1:D100,"select * where C = '서울' order by D desc",1)

처럼 작성합니다.

순서는 일반적으로

select → where → order by

형태로 작성합니다.

9. 상위 몇 개만 보고 싶다면 limit

결과를 몇 개만 보여주고 싶다면 limit을 사용할 수 있습니다.

예를 들어 매출 상위 5개만 보고 싶다면

=QUERY(A1:D100,"select * order by D desc limit 5",1)

처럼 작성합니다.

이 방식은 상위 매출 상품, 상위 클릭 키워드, 상위 주문 내역처럼 랭킹 데이터를 만들 때 유용합니다.

10. 결과 열 이름 바꾸기

QUERY 결과의 제목을 원하는 이름으로 바꾸고 싶다면 label을 사용할 수 있습니다.

예를 들어 D열 제목을 총매출로 바꾸고 싶다면

=QUERY(A1:D100,"select B,D label D '총매출'",1)

처럼 작성합니다.

여러 열을 동시에 바꾸려면 각각 지정할 수 있습니다.

예:

label B '상품', D '매출액'

결과 표를 별도 보고서처럼 사용할 때 유용합니다.

11. 합계나 평균도 계산할 수 있다

QUERY에서는 단순 조회뿐 아니라 집계도 가능합니다.

예를 들어 D열 매출 합계를 구하려면

=QUERY(A1:D100,"select sum(D)",1)

평균을 구하려면

=QUERY(A1:D100,"select avg(D)",1)

처럼 사용할 수 있습니다.

Google 공식 도움말의 QUERY 예시에도 평균과 pivot을 사용하는 형태가 안내되어 있습니다.

12. 지역별 매출 합계를 보고 싶다면 group by

같은 항목끼리 묶어서 합계를 계산할 때는 group by를 사용할 수 있습니다.

예를 들어 지역별 매출 합계를 보고 싶다면

=QUERY(A1:D100,"select C,sum(D) group by C",1)

처럼 작성합니다.

결과는 서울, 부산 등 지역별로 묶여 매출 합계가 표시됩니다.

매출 데이터나 주문 데이터 요약표를 만들 때 특히 유용합니다.

13. QUERY 세 번째 인수 headers는 무엇일까

QUERY 마지막의 숫자는 제목 행의 개수를 의미합니다.

예를 들어 첫 번째 행이 제목이라면

1

을 사용합니다.

제목 행이 없다면

0

을 사용할 수 있습니다.

예:

=QUERY(A2:D100,"select A,B",0)

데이터 구조가 복잡한 경우 Google Sheets가 헤더 수를 추정하도록 둘 수도 있지만, 직접 정확히 지정하는 편이 결과를 예측하기 쉽습니다.

14. PARSE_ERROR가 뜨는 이유

QUERY를 사용할 때 자주 보이는 오류 중 하나가 PARSE_ERROR입니다.

이 오류는 보통 QUERY 문법을 제대로 해석하지 못했을 때 발생합니다.

다음 항목을 확인하세요.

  • 큰따옴표가 빠지지 않았는지
  • 문자 조건에 작은따옴표가 들어갔는지
  • 열 이름을 잘못 입력하지 않았는지
  • select, where, order by 순서가 맞는지
  • 괄호가 제대로 닫혀 있는지

예를 들어

where C = 서울

처럼 작성하면 오류가 날 수 있습니다.

문자 조건은

where C = '서울'

처럼 작성해야 합니다.

15. 숫자와 텍스트가 섞여 있으면 결과가 이상할 수 있다

Google 공식 도움말은 하나의 열에 여러 데이터 유형이 섞여 있을 경우 가장 많이 사용된 데이터 유형이 해당 열의 유형으로 결정되고, 소수 유형은 null 값으로 처리될 수 있다​고 설명합니다.

예를 들어 한 열에 대부분 숫자가 들어 있는데 일부 셀만 텍스트 형태의 숫자로 저장되어 있다면 QUERY 결과에서 일부 값이 빠진 것처럼 보일 수 있습니다.

이럴 때는 원본 데이터 형식을 먼저 통일하는 것이 좋습니다.

16. 다른 탭의 데이터를 QUERY로 가져오기

같은 구글 스프레드시트 파일 안의 다른 시트를 바로 QUERY 대상으로 사용할 수도 있습니다.

예를 들어 매출원본 시트의 A 범위를 분석하려면

=QUERY(매출원본!A:D,"select A,B,D where D > 100000",1)

처럼 작성할 수 있습니다.

시트 이름에 공백이 있다면

=QUERY('매출 원본'!A:D,"select A,B,D where D > 100000",1)

처럼 시트 이름을 작은따옴표로 감싸는 방식이 안전합니다.

17. 다른 구글시트 파일이라면 IMPORTRANGE와 조합하기

다른 구글 스프레드시트 파일의 데이터를 QUERY로 분석하려면 IMPORTRANGE와 함께 사용할 수 있습니다.

예:

=QUERY(IMPORTRANGE("원본URL","매출원본!A:D"),"select Col1,Col2,Col4 where Col4 > 100000",1)

여기서 주의할 점이 있습니다.

IMPORTRANGE 결과처럼 배열 형태의 데이터를 QUERY 대상으로 사용할 때는 ABC 대신

  • Col1
  • Col2
  • Col3

형태로 열을 지정하는 경우가 많습니다.

앞서 작성한 구글시트 IMPORTRANGE 사용법과 연결해서 익히면 이해하기 쉽습니다.

18. QUERY와 VLOOKUP의 차이

둘 다 데이터를 찾는 데 사용하지만 목적이 다릅니다.

함수적합한 작업
VLOOKUP특정 기준값 하나를 찾아 관련 값 반환
QUERY여러 행을 조건에 맞게 추리고 정렬·집계
IMPORTRANGE다른 구글시트 파일의 데이터 가져오기

예를 들어 사번 하나를 입력해 직원 이름을 찾는다면 VLOOKUP이 편하고,

마케팅팀 직원 전체를 매출 순으로 표시

처럼 여러 행을 뽑아야 한다면 QUERY가 적합합니다.

19. QUERY가 느릴 때 확인할 것

데이터가 많아지면 QUERY 계산도 느려질 수 있습니다.

특히 실제 데이터는 1,000행인데

A:Z

전체 열을 계속 참조하고 있다면 필요 이상으로 넓은 범위를 계산하게 됩니다.

가능하면

A1:D1000

처럼 실제 사용하는 범위를 지정하는 것이 좋습니다.

또 여러 개의 IMPORTRANGE와 QUERY를 중첩해서 사용하는 경우에는 원본 구조를 단순하게 만드는 것도 도움이 됩니다.

자주 쓰는 QUERY 수식 모음

전체 데이터 가져오기

=QUERY(A1:D100,"select *",1)

원하는 열만 가져오기

=QUERY(A1:D100,"select A,B,D",1)

특정 조건만 가져오기

=QUERY(A1:D100,"select * where C = '서울'",1)

숫자 조건 사용하기

=QUERY(A1:D100,"select * where D >= 100000",1)

내림차순 정렬

=QUERY(A1:D100,"select * order by D desc",1)

상위 5개만 표시

=QUERY(A1:D100,"select * order by D desc limit 5",1)

빈칸 제외

=QUERY(A1:D100,"select * where A is not null",1)

지역별 매출 합계

=QUERY(A1:D100,"select C,sum(D) group by C",1)

QUERY가 안 될 때 확인 순서

수식이 작동하지 않는다면 아래 순서대로 확인하면 됩니다.

  1. data 범위가 정확한지 확인
  2. query 전체가 큰따옴표 안에 들어 있는지 확인
  3. 문자 조건에 작은따옴표가 있는지 확인
  4. 열 이름이 범위 안에 존재하는지 확인
  5. select → where → order by 순서 확인
  6. headers 숫자가 실제 제목 행과 맞는지 확인
  7. 열 안에 숫자와 텍스트 형식이 섞여 있지 않은지 확인
  8. IMPORTRANGE와 조합했다면 Col1, Col2 형태를 확인

QUERY는 처음에는 문법 때문에 어렵게 느껴질 수 있지만, 실제 업무에서는 select, where, order by, limit 네 가지만 익혀도 상당히 많은 작업을 처리할 수 있습니다.

특히 원본 데이터를 건드리지 않고 조건에 맞는 데이터만 별도 표로 자동 정리하고 싶을 때 가장 활용도가 높은 구글시트 함수 중 하나입니다.