구글 시트 | QUERY를 알고 나면 잘 안 돌아가게 된다
IMPORTRANGE로 남의 파일을 끌어오고, QUERY로 골라내고, ARRAYFORMULA로 열 전체를 채운다. 엑셀에 없거나 훨씬 불편한 셋.
엑셀이 손에 익은 상태로 구글 시트를 쓰면 처음엔 그게 그거 같다. VLOOKUP도 되고 SUMIF도 되고 피벗도 있으니까.
며칠 지나면 답답한 자리가 생긴다. 남이 관리하는 파일을 내 시트로 끌어와야 하는데 링크가 자꾸 끊기고, 조건 걸어 원하는 행만 뽑으려니 FILTER에 SORT가 줄줄이 붙고, 수식 하나를 1000행에 복사했더니 파일이 버벅인다.
구글 시트는 엑셀을 흉내 낸 물건이 아닌 것 같다. 여러 사람이 여러 파일을 실시간으로 엮는 상황을 전제로 만든 쪽에 가깝고, 거기 맞는 무기가 따로 있다. 셋만 보면 될 듯 싶다.
IMPORTRANGE — 남의 파일을 실시간으로 물어 온다
원본이 바뀌면 내 시트도 같이 바뀐다. 엑셀에는 사실상 대안이 없는 기능이다.
=IMPORTRANGE("원본파일_URL", "시트1!A1:D100")
처음 넣으면 십중팔구 #REF!가 뜬다. 셀에 마우스를 올리면 “액세스 허용” 버튼이 나오고, 한 번 눌러 주면 두 파일이 연결된다. 원본을 볼 권한이 아예 없으면 그 버튼도 안 나오니 그땐 공유부터 받아야 한다.
A:Z처럼 열을 통째로 당기면 로딩만 계속 돈다. 실제 데이터가 있는 범위로 좁히면 눈에 띄게 빨라진다.
그리고 IMPORTRANGE는 원본을 통째로 가져오는 데까지만 쓰고, 조건 필터나 정렬은 다음에 나올 QUERY에 맡기는 게 낫다. 한 함수에 다 욱여넣으면 나중에 어디가 문제인지 못 찾는다.
QUERY — 범위를 테이블처럼 다룬다
셋 중 진짜는 이거다.
=QUERY(A1:E1000, "SELECT A, C, E WHERE C > 100000 ORDER BY E DESC", 1)
A1:E1000에서 A·C·E 열만, C가 10만을 넘는 행만, E 기준 내림차순으로. 마지막 1은 첫 행이 제목 줄이라는 표시다.
같은 걸 엑셀 함수로 하려면 FILTER로 거르고 SORT로 정렬하고 열을 고르려고 INDEX를 또 붙여야 한다. QUERY는 문장 하나로 끝낸다. 자주 쓰는 건 다섯 개 정도.
SELECT A, B, D 가져올 열
WHERE B = '서울' AND D > 50 조건
ORDER BY D DESC 정렬
SELECT B, SUM(D) GROUP BY B 그룹별 집계
LIMIT 10 상위 N개
GROUP BY가 피벗테이블을 한 줄로 대신한다. 왼쪽 원본에서 10만 초과 건만 골라 지점별로 합산한 걸 F2 한 칸에 넣어 봤다.

수식은 F2 한 칸에만 있는데 결과는 두 열 세 줄로 펼쳐진다. 원본이 바뀌면 결과도 따라 바뀐다. 피벗은 새로 고침을 눌러야 하지만 이건 그냥 갱신된다.
걸리는 자리는 대체로 정해져 있다. 열은 제목이 아니라 A·B·C로 쓰고, 문자열 조건은 작은따옴표로 감싸고, 날짜는 WHERE A > date '2026-01-01'처럼 date 키워드를 붙인다.
Unable to parse query string이 뜨면 이 셋 중 하나다.
한 가지 더. QUERY는 한 열에 숫자와 텍스트가 섞여 있으면 다수결로 타입을 정해 버려서, 소수 쪽 값이 통째로 빈칸이 되기도 한다. 원본 열의 형식을 통일하는 게 먼저다.
ARRAYFORMULA — 드래그 복사를 없앤다
B2에 =A2*1.1 써놓고 아래로 쭉 끄는 짓을 안 하게 된다.
=ARRAYFORMULA(A2:A1000 * 1.1)
한 칸에 이것만 넣으면 범위 전체가 알아서 채워진다. A열에 행이 추가돼도 범위 안이면 따라온다. 같은 표에서 부가세 열을 E2 한 칸으로 만들어 봤다.

E3 아래로는 수식이 없다. E2 하나가 여섯 줄을 만든 것이다. IF(A2:A7="","",…)를 씌운 건 빈 행까지 0으로 채우지 않으려고.
VLOOKUP과 묶으면 더 낫다. 원래 한 행씩 도는 함수인데 감싸면 범위 전체를 한 번에 조회한다.
=ARRAYFORMULA(IFERROR(VLOOKUP(A2:A1000, 참조범위, 2, FALSE), ""))
IFERROR로 감싸 못 찾은 값을 빈칸으로 두는 것까지 습관으로 붙여 두면 표가 덜 지저분해진다.
만능은 아니다. 무거운 배열 수식을 여러 개 겹치면 오히려 시트가 느려지고, 셀마다 조건이 제각각인 로직은 그냥 일반 수식이 나을 때도 있다.
결과가 내려갈 자리에 이미 값이 있으면 “결과가 너무 커서 넘칠 수 있습니다”가 뜬다. 아래를 비워 주면 풀린다. 배열 수식은 자기 결과가 펼쳐질 공간을 필요로 한다.
셋을 엮으면 손댈 게 없어진다
팀원 셋이 각자 파일에 숫자를 넣고 나는 한 화면에서 본다고 하자.
IMPORTRANGE로 세 파일을 한 시트에 모으고, 그 위에 QUERY를 얹어 이번 달 목표 미달 건만 담당자순으로 골라내고, 옆에 ARRAYFORMULA로 달성률 열을 붙인다. 팀원이 자기 파일에 숫자만 채우면 내 쪽은 알아서 갱신된다.
역할을 한 줄로 정리하면, IMPORTRANGE는 연동, QUERY는 필터·정렬·집계, ARRAYFORMULA는 열 전체 계산이다. 엑셀에서 SUMIF와 피벗을 익히던 흐름과 비슷한 것 같다.
결론. 드래그로 만든 표 하나를 바꿔 보자
지금 관리하는 시트에서 SUMIF나 VLOOKUP을 수십 번 끌어 만든 표가 있으면, 그중 하나만 QUERY 한 줄이나 ARRAYFORMULA로 바꿔 보는 것으로 시작하면 될 듯하다.
QUERY에는 PIVOT 절도 있는데 거기까지 가면 글이 길어질 것 같다. 그건 다음에.