구글스프레드시트에서는 원본데이터에서 SQL 구문을 이용하여 원하는 데이터를 참조하는 것이 가능합니다.
지난 포스팅에서는 SQL 구문을 이용해 간단하게 원하는 데이터를 SELECT 하는 법과 그룹 합계를 내는 방법에 대해 알아보았습니다.
[구글스프레드시트] Importrange vs Query Select EP 01
[구글스프레드시트] Importrange vs Query Select EP 01
엑셀과 다르게 구글스프레드시트에서는 SQL 쿼리를 사용하여 원본 데이터에서 원하는 데이터를 가져올 수 있습니다.같은 스프레드시트 파일 내에 있는 원본 데이터라면 굳이 Importrange가 필요 없
datatribe.tistory.com
그룹 합계의 경우 원본 데이터로부터 월별 합계를 구해야 한다던가 아니면 품목별 합계를 내야 하는 경우 등 여러가지 실무적 상황이 존재하기 때문에 유용하게 활용하실 수 있을것 같습니다.
오늘은 SELECT의 WHERE 절의 조건값들을 변수화하는 방법에 대해 알아보도록 하겠습니다.
아래와 같이 데이터가 존재한다고 가정해봅시다.

F2 셀에서는 부서의 범례값들이 드롭박스로 구현되어 있습니다.
이제 지난 포스팅에서 배운대로 F2셀 밑에 Query 문을 이용해 영업1 부서의 트랜잭션을 참조하는 수식을 만들어 보도록 하겠습니다.
QUERY(B2:D6,"SELECT * WHERE Col1 = '영업1'")
결과는 아래와 같습니다.

자 이제 영업2 부서의 트랜잭션을 참조하고 싶다면 수식에서 WHERE Col1 = '영업1' 을 WHERE Col1 = '영업2'로 바꾸어 주면 됩니다.
헌데 이렇게 일일히 모든 변수를 그때 그때 수기로 변경해주어야 한다면 과연 효율성이 얼마나 있을까요?
위에 생성해놓은 드롭박스를 이용해 영업1 혹은 영업2를 선택하게 되면 수식이 다이나믹하게 참조하여 결과물을 가져오게 하는 방법은 없을까요?
이럴때에는 바로 스트링연결자 "&" 를 통해 문제를 바로 해결하실 수 있습니다.
우선 위 수식 중 WHERE 절의 Col1 값을 변수로 받기 위해 해당 수식을 아래와 같이 파트별로 좀 나누어서 생각해보도록 합시다.
1번 파트 : QUERY(B2:D6,"SELECT * WHERE Col1 = '
2번 파트 : 영업1
3번 파트 : '")
변수가 되는 파트는 2번 파트 영업1 이 되겠죠? 이 부분은 엑셀 셀 주소인 F2 로 변경해주면 되겠습니다.
1번 파트 : QUERY(B2:D6,"SELECT * WHERE Col1 = '
2번 파트 : F2
3번 파트 : '")
이제 & 를 이용해 위 3개의 파트를 합체합니다.
QUERY(B2:D6,"SELECT * WHERE Col1 = '"&F2&"'")
이해되시나요?
해당 수식을 적용해보시면 아래와 같은 결과를 가져옵니다.

이제 F2 셀의 드롭박스를 이용해 값을 선택하면 QUERY 에서 변수화된 수식이 F2 셀의 값을 참조하여 Where 절의 Col1과 비교하여 결과를 가져옵니다.
이런 식으로 n개의 조건절을 여러분들은 변수화하여 유져가 직접 시트와 상호작용하며 정보를 참조하게 할 수 있습니다.
위 이미지에서 F2 셀을 한번 영업2로 바꾸어 보도록 하겠습니다.

정확하게 원하는 결과를 도출합니다.
그렇다면 이제 실적을 높은 순으로 정리를 해서 결과를 출력할 수 있을까요?
아래와 같이 수식을 추가해봅시다.
QUERY(B2:D6,"SELECT * WHERE Col1 = '"&F2&"' ORDER BY Col3 DESC")
변경된 수식의 결과는 아래와 같습니다.

ORDER BY [컬럼명] 아라는 수식을 통해 결과물을 정렬시킬 수 있습니다.
다만 위와 같이 내림차순 (높은 수가 먼저) 으로 정렬 하고 싶으실 때에는 DESC를 그리고 반대로 올림차순 (낮은 수가 먼저) 으로 정렬 하고 싶으실 때에는 ASC 라고 옵션을 뒤에 붙여 주시면 되겠습니다.
이렇게 여러분들은 스프레드시트의 QUERY에서 WHERE 절의 조건을 변수화하여 이용자의 편의를 도모하고 ORDER BY [컬럼명] DESC (ASC) 명령어를 통해 결과물을 정렬함으로 유져의 정보 가독성을 더욱 높일 수 있습니다.
오늘 포스팅은 여기까지 입니다.
대단히 감사합니다.
'구글스프레드시트' 카테고리의 다른 글
[구글스프레드시트] 드롭박스 서로 연동하기 (0) | 2025.02.13 |
---|---|
[구글스프레드시트] Query 헤더 설정 및 변경 (0) | 2025.02.12 |
[구글스프레드시트] Importrange vs Query Select EP 01 (0) | 2025.02.10 |
[구글스프레드시트] SUMIFS - 조건부 합계를 마스터해보자 (2) | 2025.02.07 |
[구글스프레드시트] Filter 수식을 이용해 원하는 데이터 추출 (2) | 2025.02.07 |