무지개타고

스프레드시트에 Query 함수가 들어왔다 본문

Program

스프레드시트에 Query 함수가 들어왔다

OnRainbow 2010. 2. 9. 17:54
구글닥스의 스프레드시트에서 재미난 함수가 눈에 띄었다.
함수 이름이 Query 다.
SQL에서 사용하는 쿼리 보단 기능이 딸리지만, 그래도 신기하다.

언제나 느끼지만 구글의 도움말은 기계로 번역했는지 영~ 아니다. -_-

- 함수 : Query 함수

어떤 자료 목록이 있고 이를 집계하는 작업을 진행한다고 하자.
보통 일정한 양식을 구성하고 그에 따라 집계 결과를 보여주게 되는데...

먼저 예제에 사용된 색에 대해 간단한 설명이 필요하겠다.

회색 계열 - 임의로 입력
푸른색 계열 - 함수로 작성
노 랑색 계열 - 결과값을 얻기 위해 함수로 작성
초록색 계열 - 기존에 알고 있던 함수 표제
분홍색 계열 - Query 함수 표제

말이 좀 복잡해 보여도 예제를 보면 안다.



엑셀에서 함수를 이용해 f3:f5 나타난 결과를 얻으려면 많이 복잡하다.
그러나 구글의 스프레드시트에서는 Sort, Unique 함수로 간단히 끝.

f3 셀
=sort(unique(B3:B9))

g3 셀
=sumif($B$3:$B$9,F3,$D$3:$D$9)

그럼 Query 함수로는 어떻게?

f8 셀
=query(B2:D9,"select B, sum(D) group by B")

일정 양식에 맞춰서 결과를 얻기위해 위에서는
Sort, Unique, Sumif 총 3개의 함수를 이용했다.
그에반해 Query 함수 하나로 끝.
물론 SQL 작성에 대해 조금 알아야 하지만...

- Google 시각화 API 쿼리 언어

이번엔 조건을 추가해 보자.



i3 셀
=sort(unique(filter(B3:B9,D3:D9>10)))

j3 셀
=ArrayFormula(sumproduct(($B$3:$B$9=I3)*($D$3:$D$9>10)*($D$3:$D$9)))

그럼 Query 함수로는 어떻게?

i8 셀
=query(B2:D9,"select B, sum(D) where D>10 group by B")

역시나 Query 함수 하나로 끝.

혹시 결과 비틀기도 가능할까?



m2 셀
=transpose(sort(unique(C3:C9)))

m3 셀
=sumif($C$3:$C$9,M2,$D$3:$D$9)

설마 Query 함수로 되겠지?

m8 셀
=query(B2:D9,"select sum(D) pivot C")

역시나 비틀기가 된다.
Query 함수 하나로.

이를 종합하면...



q8 셀
=query(B2:D9,"select B, sum(D) where D>10 group by B pivot C")

연습을 더 해봐야겠지만 Query 함수가 피벗테이블 기능을 대체해 주는 느낌이다.
기특한거~~~



Comments