구글시트 QUERY 함수로 원하는 데이터만 뽑아내는 법
한눈에 보기
=QUERY(범위, "select 열 where 조건", 머리글행수)하나로 필터링과 정렬을 한 번에 처리해요.- 조회문 안의 A, B, C는 지정한 범위 기준이 아니라 실제 스프레드시트의 열 위치를 가리켜요.
- 이 함수는 구글시트에만 있고 엑셀에는 동일한 함수가 없어요.
목차 (5)
QUERY는 표 형태의 데이터에서 SQL과 비슷한 조회 언어로 원하는 행·열만 뽑아내는 구글시트 함수예요. 필터링, 정렬, 개수 제한을 여러 기능으로 나눠 조합하지 않고 수식 하나로 한 번에 처리할 수 있어요. 이 함수는 구글시트에만 있고 엑셀에는 동일한 함수가 없어요. 이렇게 한쪽에만 있는 기능이 꽤 있어서, 파일을 양쪽으로 주고받을 일이 있다면 엑셀에만 있는 기능, 구글시트에만 있는 기능은 뭐가 있나요?를 먼저 보고 어디까지 옮겨갈 수 있는지 가늠해두는 게 좋아요.
함수 구조는 =QUERY(데이터 범위, 조회문, [머리글 행 수]) 이렇게 세 부분이에요. 데이터 범위는 조회할 표 전체, 조회문은 큰따옴표로 감싼 SQL과 비슷한 문장, 머리글 행 수는 표 맨 위 제목행이 몇 줄인지(생략 가능)예요. 아래 예제로 확인해볼게요.
매출(C열)이 200만원을 넘는 사람의 담당자·매출만 뽑아 E1부터 자동으로 채워져요.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | 담당자 | 부서 | 매출 | 담당자 | 매출 | |
| 2 | 김민준 | 마케팅팀 | 3200000 | 김민준 | 3200000 | |
| 3 | 이서연 | 개발팀 | 1800000 | 박도윤 | 2500000 | |
| 4 | 박도윤 | 마케팅팀 | 2500000 | |||
| 5 | 최지우 | 개발팀 | 900000 |
따옴표 안 조건만 원하는 조건으로 바꿔 쓰세요
=QUERY(범위, "select 열 where 조건", 1)한글로 적힌 자리는 직접 바꿔 넣어야 하는 값이에요. 복사한 뒤 자기 파일의 범위·조건으로 고쳐서 쓰세요.
조회문 안의 select와 where 이해하기
조회문 안의 select A, C where C > 2000000 부분이 핵심이에요. select 뒤에는 가져올 열을 알파벳(A열, C열)으로 적고, where 뒤에는 조건을 SQL과 비슷한 문법으로 적어요. 이 예제는 'A열과 C열을 가져오되, C열 값이 200만원보다 큰 행만'이라는 뜻이라, 매출 180만원인 이서연과 90만원인 최지우는 빠지고 320만원인 김민준과 250만원인 박도윤만 결과에 남아요.
정렬하거나 개수를 제한하려면
정렬하고 싶으면 order by C desc처럼, 개수를 제한하고 싶으면 limit 5처럼 조회문 뒤에 이어 붙이면 돼요. 조건을 여러 개 조합할 때는 where 절 뒤에 and·or로 연결하면 되고요.
조회문에 이어 붙이는 절, 쓰는 순서가 정해져 있어요
| 절 | 하는 일 | 이렇게 써요 |
|---|---|---|
| select | 가져올 열을 고름 | select A, C |
| where | 조건으로 행을 거름 | where C > 2000000 |
| order by | 정렬 | order by C desc |
| limit | 가져올 개수 제한 | limit 5 |
위에서 아래 순서대로 이어 붙여요. 순서를 바꿔 쓰면 조회문을 못 읽어서 오류가 나니, 조건은 맞게 쓴 것 같은데 수식이 안 먹힌다면 이 순서부터 확인해보세요.
COUNTIFS·SUMIFS를 QUERY로 대신할 수 있어요
조건별로 개수를 세거나 합계를 내는 일은 보통 COUNTIFS·SUMIFS로 하는데, 조건이 서너 개로 늘어나면 수식이 길어져서 어디가 틀렸는지 찾기 어려워져요. QUERY는 같은 일을 select count(A) where …나 select sum(C) where … 한 줄로 처리해요. 차이가 가장 크게 벌어지는 건 OR 조건이에요. '서울이거나 부산'처럼 하나만 맞아도 되는 조건은 COUNTIFS로는 조합별로 따로 센 뒤 더해야 하는데, QUERY는 where 절에 or를 그대로 써넣으면 끝나거든요. 어느 쪽을 쓸지 고르는 기준은 구글시트 여러 조건 동시에 세기, COUNTIFS 이렇게 써요와 구글시트 SUMIFS로 조건 두 개 이상 합계 구하는 법에 각각 비교해뒀어요.
열 알파벳은 범위의 상대 위치가 아니에요
여기서 자주 하는 실수가 있어요. 조회문 안의 A, B, C는 지정한 범위의 상대 위치가 아니라 실제 스프레드시트의 열 위치예요. 그래서 데이터가 C열부터 시작한다면(예: 범위를 C1:E10으로 잡은 경우), 조회문에서도 A가 아니라 C부터 써야 해요. 이 예제처럼 범위가 A열부터 시작할 때만 우연히 범위의 첫 열과 실제 열 위치가 같아서, 처음 배울 때 이 둘을 같은 것으로 착각하기 쉬워요.
조건에 텍스트를 넣을 때는 작은따옴표
실무 팁 하나 더: where 조건에 텍스트를 쓸 때는 큰따옴표 안에 작은따옴표를 한 번 더 써야 해요(예: where B = '마케팅팀'). 전체 조회문이 큰따옴표로 감싸여 있어서, 그 안의 문자열 조건은 작은따옴표로 구분해야 오류가 안 나요. 원본 데이터가 다른 파일에서 IMPORTRANGE로 가져온 값이라면, QUERY를 그 위에 바로 씌워서 원하는 조건만 걸러내는 조합도 자주 써요.
작성·검수
LONGBRIGHT — 광고 마케팅 현업에서 일하며 LBtools를 혼자 만들고 운영해요. 함수 동작과 메뉴 설명은 각 제조사의 공식 문서와 실제 동작을 기준으로 확인해요.
- 발행
- 최종 확인
잘못된 내용을 발견하셨다면 문의로 알려주세요. 확인해서 고치고 이 날짜를 갱신해요. 운영 원칙도 공개해두었어요.
이런 글도 함께 보면 좋아요
구글시트 COUNTIF로 빈칸 빼고 조건별 개수 세는 법
신청서에서 담당자가 배정된 건 중 승인 상태까지 만족하는 개수를 COUNTIFS와 QUERY 두 가지 방법으로 세어봤어요.
사무구글시트 여러 조건 동시에 세기, COUNTIFS 이렇게 써요
지역과 완료여부 두 조건을 동시에 만족하는 신청 건수를 COUNTIFS와 QUERY 두 가지 방법으로 세어봤어요.
사무구글폼 응답 시트에서 자동으로 집계하는 법
구글폼 응답이 시트에 쌓이는 구조를 이해하고, COUNTIF·QUERY로 항목별 응답 수를 자동으로 집계하는 방법을 정리했어요.
사무구글시트 조건 두 개로 값 찾기, INDEX MATCH 헬퍼 열로 하면 돼요
이름과 과목처럼 조건 두 개를 동시에 만족하는 점수를 INDEX MATCH로 찾는 법을, QUERY 없이 헬퍼 열만으로 정리했어요.
사무구글시트 SUMIFS로 조건 두 개 이상 합계 구하는 법
결제수단과 분류, 두 가지 조건을 동시에 만족하는 지출만 더하는 예제로 구글시트 SUMIFS 사용법과 자주 하는 실수를 정리했어요.
사무구글시트 원하는 패턴 글자만 찾아내는 법, REGEXMATCH·REGEXEXTRACT로 이렇게 하면 돼요
정규식으로 텍스트가 패턴에 맞는지 확인하는 REGEXMATCH와, 일치하는 부분만 뽑아내는 REGEXEXTRACT 사용법을 정리했어요.