구글 스프레드시트 QUERY 함수 사용법: 조건·정렬·#VALUE! 오류 해결

구글 스프레드시트에서 조건에 맞는 행의 일부 열만 뽑아 금액순으로 정렬하려면 QUERY 수식 하나로 처리할 수 있습니다. 이번 주문표에서는 select로 주문번호·담당자·금액 열을 고르고, where로 진행 상태만 남긴 뒤, order by로 금액을 큰 순서대로 정렬했습니다.

PC 웹의 A1:D10에서 직접 확인한 결과, 진행 주문은 O-209·O-207·O-201·O-205·O-204 다섯 건이었고 금액은 140,000원부터 70,000원까지 내림차순으로 반환됐습니다.

#VALUE!가 보이면 수식을 전부 다시 쓰기보다 열 제목 대신 A·B·C 같은 열 문자를 썼는지, 문자열 따옴표와 절 순서가 맞는지부터 확인하세요. 새 행만 결과에서 빠진다면 닫힌 범위의 마지막 행을 먼저 봅니다.

구글 스프레드시트 QUERY로 조건 행을 추출하고 #VALUE 오류를 해결하는 실제 검증 화면 기반 대표 이미지

먼저 고를 방식

  • 열 선택·조건·정렬을 한 결과표로 만들기: QUERY
  • 원본 열 구조 그대로 조건 행만 뽑기: FILTER
  • 마우스로 행·열·집계를 바꾸며 요약하기: 피벗 테이블
  • QUERY 결과가 펼쳐질 자리: 기존 값을 보존한 뒤 비워 둠

QUERY는 언제 쓰면 되나요?

원본을 바꾸지 않고 필요한 열만 골라 조건·정렬까지 한 번에 적용할 때 QUERY가 잘 맞습니다. 결과는 수식 셀에서 여러 행과 열로 펼쳐지고, 원본 값이 바뀌면 다시 계산됩니다.

하려는 일권장 방식이유
열을 고르고 조건·정렬한 별도 표QUERY선택·필터·정렬을 한 문자열로 관리
원본과 같은 열 구성으로 조건 행 추출FILTER일반 셀 조건식으로 읽기 쉬움
항목별 합계·평균을 화면에서 바꿔 보기피벗 테이블수식보다 편집 패널이 편한 경우가 있음

행을 잠시 숨겨 보는 기본 필터와 달리 QUERY는 원본과 별개인 결과 범위를 만듭니다. 상품코드 하나에 대응하는 값 하나만 찾는 작업이라면 QUERY보다 VLOOKUP 같은 조회 함수가 단순합니다.

QUERY 수식은 어떤 요소로 구성되나요?

QUERY는 데이터 범위, 쿼리문, 헤더 행 수의 세 인수로 구성됩니다. 쿼리문 안에서는 필요한 절을 정해진 순서로 이어 붙입니다.

=QUERY(데이터, "쿼리문", 헤더_행_수)
요소이번 예제결과에 미치는 영향
데이터A1:D조회할 원본 범위
selectA,B,D반환할 열과 순서
whereC='진행'남길 행의 조건
order byD descD열을 큰 값부터 정렬
헤더1범위 첫 행을 머리글로 처리

Google Visualization 쿼리 언어의 기본 절 순서는 select → where → group by → pivot → order by → limit입니다. 모두 쓸 필요는 없지만, 사용하는 절의 순서는 지켜야 합니다.

중요: 시트에 보이는 머리글이 ‘주문번호’여도 쿼리문에는 주문번호가 아니라 A를 씁니다. Google 공식 쿼리 언어 문서도 스프레드시트의 열 식별자는 문자이며, 표시 라벨을 식별자 대신 쓰지 말라고 설명합니다.

진행 주문을 금액순으로 추출하려면?

PC 웹에서 A1:D10에 아래 주문표를 만들었습니다. 첫 행은 머리글이고, O-209를 마지막에 추가해 새 행 경계도 함께 확인했습니다.

주문번호담당자상태금액
O-201김하나진행120,000
O-202박도윤완료80,000
O-203김하나완료150,000
O-204이서준진행70,000
O-205김하나진행95,000
O-206박도윤보류110,000
O-207김하나진행130,000
O-208김하나완료60,000
O-209김하나진행140,000

빈 결과 영역의 첫 셀 F2에 아래 수식을 한 번 입력합니다.

=QUERY(A1:D,"select A,B,D where C='진행' order by D desc",1)

select A,B,D는 주문번호·담당자·금액만 반환하고, where C='진행'은 상태가 진행인 행만 남깁니다. order by D desc를 이어 붙이면 금액이 큰 주문부터 표시됩니다.

주문번호담당자금액
O-209김하나140,000
O-207김하나130,000
O-201김하나120,000
O-205김하나95,000
O-204이서준70,000
A1:D 주문표에서 진행 주문 다섯 건을 금액 내림차순으로 반환한 QUERY 정상 결과 화면

#VALUE!가 보이면 무엇부터 확인하나요?

오류 셀의 설명을 먼저 읽고 열 문자와 따옴표를 확인하세요. 이번 재현에서는 보이는 머리글 문구를 쿼리문에 그대로 넣자 #VALUE!와 함께 쿼리 문자열을 파싱할 수 없다는 설명이 나타났습니다.

아래 수식은 오류가 났습니다.

=QUERY(A1:D9,"select 주문번호,담당자 where 상태='진행'",1)

열 제목을 A·B·C로 바꾸자 같은 조건이 정상 계산됐습니다.

=QUERY(A1:D9,"select A,B where C='진행'",1)
증상먼저 확인원인복구
#VALUE!·파싱 오류select 뒤 표현표시 머리글을 식별자로 입력A·B·C 또는 Col 표기로 수정
#VALUE!·문자열 근처 오류큰따옴표·작은따옴표쿼리문이나 텍스트 조건이 닫히지 않음쿼리문은 큰따옴표, 조건값은 작은따옴표로 구분
일부 값이 빈칸처럼 빠짐한 열의 값 형식숫자와 텍스트가 섞여 적은 쪽 형식이 null 처리됨원본 열의 데이터 형식을 통일
수식은 맞는데 절 근처 오류절의 순서order bywhere 순서가 뒤바뀜select → where → order by로 정리
QUERY에 열 제목을 넣어 발생한 #VALUE 파싱 오류와 A·B·C 열 문자로 복구한 실제 화면

새 행만 결과에서 빠지면?

닫힌 범위의 마지막 행을 먼저 확인합니다. 처음 수식을 A1:D9로 만들고 10행에 O-209를 추가하자 원본에는 새 주문이 있지만 QUERY 결과에는 나타나지 않았습니다.

=QUERY(A1:D9,"select A,B,D where C='진행' order by D desc",1)

범위를 A1:D로 바꾸자 O-209가 140,000원으로 결과 첫 행에 추가됐고, 진행 주문은 네 건에서 다섯 건으로 늘었습니다.

=QUERY(A1:D,"select A,B,D where C='진행' order by D desc",1)
범위 선택 기준: 계속 늘어나는 작은 운영표는 A1:D가 누락을 줄이기 쉽습니다. 다만 Google의 성능 가이드는 큰 문서에서 열린 전체 열보다 A1:D1000처럼 필요한 크기의 닫힌 범위를 권장합니다. 큰 시트라면 예상 최대 행까지 여유를 두고 경계에 가까워질 때 확장하세요.

헤더 인수는 왜 1로 넣나요?

이번 원본은 A1:D1이 머리글이므로 마지막 인수를 1로 넣었습니다. Google 공식 도움말은 헤더 인수를 생략하거나 -1로 두면 데이터 내용을 보고 추정한다고 설명합니다. 구조를 알고 있다면 명시하는 편이 결과를 해석하기 쉽습니다.

  • A1:D의 첫 행만 머리글: 1
  • A2:D처럼 데이터 행부터 시작: 0
  • 범위 상단 두 행이 머리글: 2

헤더 수를 바꾸면 쿼리문에서 고르는 열 문자가 달라지는 것은 아니지만, 첫 행을 데이터로 볼지 라벨로 볼지가 달라집니다. 자동 추정 결과가 예상과 다르면 범위 시작 행과 헤더 인수를 함께 확인하세요.

PC·Android·iPhone에서 입력 방법이 다른가요?

이 글의 정상·오류·범위 복구 화면은 Google Sheets PC 웹에서 재현했습니다. QUERY 문법은 같고, Android와 iPhone·iPad 앱에서도 셀을 탭한 뒤 등호로 시작하는 수식을 직접 입력할 수 있습니다.

  • PC 웹: 결과 시작 셀 선택 → 수식 입력 → Enter
  • Android: 셀 탭 → =QUERY(...) 입력 → 완료
  • iPhone·iPad: 셀 탭 → =QUERY(...) 입력 → 완료

쿼리 문자열이 길고 오류 설명까지 확인해야 한다면 PC 웹에서 처음 만들고, 모바일에서는 조건값 수정이나 결과 확인을 하는 편이 구분하기 쉽습니다.

지금 적용할 순서

  1. 원본 범위와 머리글 행 수를 확인합니다.
  2. 필요한 열의 문자 A·B·C를 적습니다.
  3. select만 넣어 열 선택 결과부터 확인합니다.
  4. where 조건을 추가해 남는 행을 확인합니다.
  5. order by를 마지막에 붙여 정렬 방향을 확인합니다.
  6. 정상값, 조건에서 제외될 값, 새 행을 각각 시험합니다.
  7. #VALUE!가 나오면 열 문자, 따옴표, 절 순서, 헤더 수 순으로 봅니다.
  8. 작은 운영표는 열린 범위, 큰 시트는 여유 있는 닫힌 범위를 선택합니다.

실무 기본값: 작은 예제 범위에서 select만 먼저 성공시킨 뒤 조건과 정렬을 한 절씩 추가하세요. 한 번에 긴 쿼리문을 쓰는 것보다 오류가 생긴 지점을 좁히기 쉽습니다.

참고한 공식 문서와 관련 글

전체 글 보기