본문 바로가기
IT/엑셀, 구글스프레드시트

[구글 스프레드시트] SQL Query문을 구글스프레드 시트에서~

by marketinkerbell 2021. 5. 14.
반응형

 

구글 스프레드시트에서 <QUERY 함수>를 통해 SQL 쿼리문과 같은 기능을 사용할 수 있다. 

 

 

query 함수는 아래와 같이 사용.

= query(사용할 데이터 범위 설정 쿼리문)

 

 

필자는 SQL문을 어디에 사용했느냐,   

매주 상품별로 발주를 넣는데, 100개가 넘는 브랜드 중 팀원마다 맡은 브랜드가 있다.

각 팀원별로 맡은 브랜드만 확인하면 되니까 Query 함수를 써서 해당 브랜드만 각 담당자별 시트탭에 데이터를 뿌려줬다.

 

 

↓실제 시트 화면

 

 

 

우선 상품별로 발주가 필요한지 여부를 체크해 주는 '상태부여' 탭을 만들고

(한달 동안 판매된 수량과 재고 수량 비교하여 발주할 수량 정해줌)

 

 

 

 

 

 

 

 

 

 

각 담당자들 탭에 query 문으로 데이터 뿌려주기

 

 

 

 

 

 

 

 

 

=QUERY('상태 부여'!A2:I,"select * where B='에뛰드 하우스' or B='잇츠스킨' or B='미샤' or B='더페이스샵' order by B ")

 

 

이렇게 사용했는데 이 의미는

 

 

= QUERY(사용할 데이터 범위 설정 쿼리문)

= QUERY('상태 부여'시트탭에 A2:I 범위에서 데이터 다 가져올건데,   조건이 있어!! B 열에 있는 단어가 '에뛰드 하우스' 이거나 '잇츠스킨' 이거나 '미샤' 이거나 '더페이스샵'  인것만 가져와줘 .  그리고 B열 기준 오름차순으로 정렬해줘. )

 

 

이런 의미다.

 

 

 

만약, 조건문에 포함해야할 단어가 100개중에 98 개면  

위에 쿼리문 처럼 or 로 98개를 연결시키는 것보다는 

나머지 2개의 단어를 제외 시키는게 낫다. 

아래처럼.

 

 

=QUERY('상태 부여'!A2:I,"select * where  A!='' and B!='토니모리' and B!='이니스프리' order by B")

 

 

이렇게 쓴 것의 의미는

 

 

QUERY('상태 부여'시트탭에 A2:I 범위에서 데이터 다 가져올건데,   조건이 있어!! A열은 빈칸이면 안되고,  B열에 있는 단어가 '토니모리' 이면 안되고,  '이니스프리' 이면 안돼.  그리고 B열 기준 오름차순으로 정렬해줘. )

 

 

이런 의미다.

 

 

 

참고1 )  !=   같지않다는 의미

         ''   작은따옴표 2개 쓰면 빈칸을 의미 

       select *    모두 선택한다는 의미

       where     조건문의 시작

       order by   오름차순 정렬

       order by desc  내림차순 정렬

 

 

 

 

참고2 )  where 조건문 에서 어떤 특정한 셀과 같다는 조건을 걸고 싶을때

 

 

 

 

A 칼럼은 C1 셀과 같은 값을 갖고 And B 칼럼은 C16 셀과 같은 값을 가지는 조건일때, C ~ L 칼럼 출력하라

 

 

 

 

 

 

=QUERY (A132:L, " select C,D,E,F,G,H,I,J,K,L where A = ' " &C1&" '  AND B = ' " &C16&" '  " , 1)

 

셀과 비교할 때 셀 양옆에 & 앰퍼샌드를 붙여주고 큰따옴표로 감싸주고 그걸 또 작은 따옴표로 감싸줘야 함 

 

where 조건문 안에서 특정 셀과 같다...를 표현하는 방법 매우 복잡하지만 알아두면 유용!

댓글