구글 스프레드시트 검색 쿼리 QUERY() 함수 사용 방법

구글 스프레드 시트에서 쿼리 함수를 사용하는 방법에 대해 알아보겠습니다.

먼저 쿼리(QUERY)가 무엇인지 살펴보겠습니다.

 

쿼리(QUERY) 란?

QUERY 란 데이터에 조건을 지정하여 원하는 데이터를 취득해주는 문장을 의미합니다.

데이터 베이스나 웹 페이지 등등 많은 곳에서 사용합니다.

구글 스프레드 시트의 QUERY 함수도 같은 기능을 합니다.

 

QUERY

이제부터 구글 스프레드 시트의 QUERY 함수에 대해 살펴보도록 하겠습니다.

QUERY

=QUERY(범위, 쿼리, 헤더)

범위 – 쿼리를 실행할 셀의 범위

쿼리 – 데이터 조작을 실행할 조건

헤더 – 데이터 출력 행수 (생략 가능)

 

쿼리를 사용하면 구글 스프레드 시트의 필터나 엑셀의 필터처럼 원하는 값만 출력할 수 있습니다.

사용방법을 보도록 하겠습니다.

먼저 아래와 같은 데이터를 준비하겠습니다.

 

만약 개발 부서만 표시하고 싶은 경우 필터를 사용한다면 항목에 필터를 만들어서 표시하고 싶은 부서만 체크하면 원하는 부서만 표시됩니다.

하지만 QUERY를 사용하면 다음과 같이 작성할 수 있습니다.

 

사용 수식

=QUERY(A:D, “WHERE B = ‘개발'”)

 

개발 부서만 QUERY 함수를 작성한 부분에 표시되고 있습니다.

사용한 수식을 하나씩 살펴보겠습니다.

 

범위 – A:D

데이터가 존재하는 범위를 지정하였습니다.

A열부터 D 열까지 전체 지정하였습니다.

쿼리 – “WHERE B = ‘개발'”

 

조건을 입력한 쿼리 부분입니다.

쿼리의 시작과 끝은 “”를 지정하여 문자열로 해야 합니다.

WHERE검색 조건을 입력하고 싶은 경우에 사용합니다.

B = ‘개발’ 부분은 검색 대상과 검색 조건 부분입니다.

B는 열을 의미합니다.

부서가 작성되어 있는 곳이 B 열이기 때문에 B를 지정합니다.

그래도 같다는 의미를 가진 = 부등호를 지정합니다.

부등호 뒤에는 검색 조건인 ‘개발’을 지정합니다.

검색 조건은 ”로 감싸줘야 합니다.

 

검색 조건 여러개

QUERY 검색 조건을 여러개 설정하는 방법을 보도록 하겠습니다.

조건을 여러개 설정하는 방법은 2가지가 있습니다.

AND 와 OR 입니다.

AND는 작성한 조건과 모두 일치하는 값만 취득합니다.

OR는 작성한 조건 중 하나라도 일치하는 경우 값을 취득합니다.

먼저 AND 조건을 보겠습니다.

 

사용 수식

=QUERY(A:D, “WHERE B = ‘개발’ AND D = ‘여'”)

 

개발 부서이고 성별이 여자인 사원 정보만 취득하고 있습니다.

AND로 조건을 설정하였기 때문에 조건과 모두 만족하는 값만 취득하게 됩니다.

이번에는 AND를 OR로 바꿔서 결과를 보도록 하겠습니다.

 

사용 수식

=QUERY(A:D, “WHERE B = ‘개발’ OR D = ‘여'”)

 

결과는 개발부서의 사원 정보와 성별이 여자인 사원 정보를 모두 표시하고 있습니다.

 

QUERY 함수 장점

QUERY 함수를 사용하여 원하는 검색 결과만 표시하는 방법을 봤습니다.

단순히 보면은 필터 기능과 동일하게 보입니다.

하지만 필터 기능으로 원하는 결과를 표시한 경우와 차이점이 있습니다.

데이터가 새로 추가되었거나 변경되었을 경우 필터를 초기화했다가 다시 지정해줘야 합니다.

하지만 QUERY는 수식으로 되어있기 때문에 값이 변경되어가 추가되어도 수식을 수정하지 않아도 됩니다.

 

정리

구글 스프레드 시트에서 검색을 할 수 있는 QUERY 함수에 대해 살펴보았습니다.

검색에 사용되는 문법으로 WHERE를 사용하여 조건을 여러개 사용하고 싶은 경우에는 AND 또는 OR를 사용하여 여러개 지정할 수 있습니다.

사용 방법은 SQL 쿼리인 SELET 문과 거의 비슷했습니다.

QUERY 함수를 사용하여 다른 시트나 다른 파일에 있는 데이터도 원하는 값만 취득할 수도 있습니다.

댓글

  1. monaf 댓글:

    =QUERY(‘전체 미수금’!A:K,”select A,B,C,D,E,F,G,H,I,J,K where B = ‘섹시쥬'”)

    클라이언트 미수금 체크를 쿼리로 해봤습니다.
    클라이언트가 많아서 쿼리문에서 일일이 수정하기보단 미수금업체칸을 따로 만들어서 클라이언트 이름을 입력하면 결과가 출력되게 하고 싶은데 방법을 알 수 있을까요?

    예를들어 J1 칸을 “클라이언트명” 이라고 했을때 J1의 값이 위 쿼리문 섹시쥬에 연동되게 하고 싶습니다.
    J1에서 클라이언트명을 입력하면 쿼리문에서 자동으로 반영될 수 있게요
    질문이 복잡해서 죄송합니다.

    • 개발자 댓글:

      monaf님
      안녕하세요

      =QUERY(‘전체 미수금’!A:K,”select A,B,C,D,E,F,G,H,I,J,K where B = ‘”& J1 &”’”)

      으로 수식을 변경하시면 가능할꺼 같습니다.
      쿼리문은 쿼리대로 사용하고 중간에 다른 셀을 지정할 수 있도록 &마크를 사용해 문자열 연결을 하시면 될거 같습니다.