오류 해결

함수와 수식

데이터 정리

문서 편집

파일 변환

서식과 인쇄

광고자리 · 글 위

지점별 매출을 더할 때 엑셀에서는 SUMIFS를 씁니다. 지점이 열두 개면 수식도 열두 줄이 되고, 지점 하나가 늘면 열세 번째 줄을 또 만들어야 합니다. 구글 시트에는 그 열두 줄을 한 칸으로 접는 함수가 따로 있습니다.

QUERY 한 줄이면 지점 이름과 합계가 두 열로 펼쳐집니다. 지점이 늘어도 수식은 그대로입니다. 다만 이 함수는 열을 이름으로 부르지 못합니다. 머리글에 "지점"이라고 적어 두었어도 조건문 안에서는 B라고 써야 하고, 그 B는 범위 안에서 몇 번째 열인지가 아니라 시트 왼쪽 위에 붙은 열 문자 그대로입니다.

여기서 어긋나면 합계가 조금 틀리는 게 아니라 아예 오류로 막힙니다. 그래서 수식보다 열 문자를 먼저 확인하는 편이 빠릅니다.


합계 한 칸, 수식 한 줄

지점 이름과 합계가 두 열로 함께 나옵니다

A열에 날짜, B열에 지점, C열에 금액, D열에 상태가 들어 있는 표라고 하겠습니다. 상태가 "완료"인 행만 골라 지점별로 금액을 더하려면 빈 칸 하나에 이렇게 적습니다.

=QUERY(A1:D, "select B, sum(C) where D = '완료' group by B", 1)

결과는 한 칸이 아니라 여러 칸으로 펼쳐집니다. 왼쪽 열에 지점 이름이 하나씩 서고 오른쪽 열에 그 지점의 합계가 붙습니다. SUMIFS와 달리 지점 목록을 미리 적어 둘 필요가 없습니다. 시트가 데이터를 훑어 나온 이름만 골라 세우기 때문입니다. 열 순서는 select 뒤에 적은 차례를 그대로 따르므로, 합계를 왼쪽에 두고 싶으면 sum(C)를 먼저 적으면 됩니다.

범위를 A1:D처럼 끝 숫자 없이 적은 것도 이유가 있습니다. 아래로 행이 더 쌓여도 수식을 다시 고칠 일이 없어집니다. 오늘 매출을 한 줄 적어 넣으면 합계도 그 자리에서 같이 올라갑니다. 맨 뒤의 1은 머리글이 한 줄이라는 뜻이고, 이 숫자를 빼면 시트가 알아서 짐작하다가 머리글까지 데이터로 세는 일이 생깁니다.

지금 해보세요 — 확인

표에서 멀찍이 떨어진 빈 칸에 위 수식을 그대로 붙여 넣고, 열 문자만 내 표에 맞게 바꿔 봅니다. 지점 이름이 세로로 서면 제대로 들어간 것입니다. 오류가 뜨면 조건과 묶기를 지우고 select만 남겨 다시 봅니다.


머리글 이름은 부르지 못합니다

조건문 안의 B는 시트 왼쪽 위에 붙은 그 B입니다

QUERY 안에 들어가는 문장은 시트 수식이 아니라 별도의 문법입니다. 그래서 머리글에 적어 둔 "지점"이나 "금액" 같은 이름을 그대로 쓰면 받아들이지 않습니다. 대신 열 문자를 씁니다.

지금 해보세요 — 확인

머리글에 적힌 이름은 잠시 잊고, 화면 맨 위 회색 띠의 글자만 읽습니다. 묶을 열과 더할 열이 각각 어느 문자인지 두 개만 적어 두고 수식을 시작합니다.

진짜로 헷갈리는 자리는 범위를 표 한가운데에서 시작할 때입니다. 범위를 C2:F로 잡았다면 그 안의 첫 열은 A가 아니라 C이고 두 번째 열은 D입니다. 범위가 어디서 시작하든 열 문자는 시트가 원래 갖고 있던 문자를 그대로 씁니다. 화면 맨 위 회색 띠에 적힌 글자를 짚어 가며 세는 편이 머릿속으로 순번을 세는 것보다 확실합니다. 아래처럼 범위와 조건문을 나란히 두고 보면 어긋난 자리가 눈에 들어옵니다.

=QUERY(C2:F, "select D, sum(E) group by D", 1)

예외는 하나뿐인데, 범위 자리에 셀 주소가 아니라 중괄호로 묶은 값이나 IMPORTRANGE의 결과가 들어가면 열 문자가 사라집니다. 붙일 주소가 없으니 시트가 부를 이름을 잃는 셈입니다. 그때는 Col1, Col2처럼 번호로 부르고, 이 번호는 범위 안에서 몇 번째 열이냐로 셉니다. 같은 함수인데 부르는 이름이 달라지는 자리는 여기뿐입니다.

주의 — 열을 끼워 넣으면 수식이 밀립니다

B열과 C열 사이에 열을 하나 삽입하면 시트는 범위 주소는 알아서 고쳐 주지만, 따옴표 안의 문장은 글자로 보기 때문에 손대지 않습니다. 열을 넣거나 지운 뒤에는 조건문의 문자도 같이 고쳐야 합니다.


빈 칸에서 시작해 세 단계

범위부터 잡고, 조건을 붙이고, 묶는 순서입니다

1결과가 펼쳐질 자리를 비웁니다

수식을 넣은 칸에서 오른쪽과 아래로 결과가 자랍니다. 그 자리에 다른 값이 하나라도 있으면 시트가 결과를 펼치지 못하고 오류를 냅니다. 표에서 두어 열 떨어진 곳을 고릅니다.

2범위와 select만 먼저 넣어 봅니다

조건과 묶기를 빼고 =QUERY(A1:D, "select B, C", 1)만 넣습니다. 두 열이 그대로 나오면 열 문자가 맞는 것이고, 여기서 오류가 나면 뒤를 붙여도 소용없습니다.

3where와 group by를 차례로 붙입니다

조건을 먼저 붙여 행이 걸러지는지 보고, 그 다음에 sum과 group by를 얹습니다. 한 번에 다 적고 오류가 나면 어디가 문제인지 알 길이 없습니다.

칸에 =QUE까지만 쳐도 함수 목록이 뜨고, 골라 넣으면 괄호가 함께 붙습니다. 여기까지 하면 지점 이름과 합계가 두 열로 서 있습니다. 조건에 쓰는 글자는 작은따옴표로 감쌉니다. 수식 전체가 큰따옴표로 묶여 있어서, 안쪽에서 큰따옴표를 한 번 더 쓰면 그 자리에서 문장이 끊깁니다. 이 규칙 하나만 지켜도 구문 오류의 절반은 줄어듭니다. 문장 안의 select나 where는 대문자로 적어도 되고 소문자로 적어도 되지만, 따옴표 안에 넣은 값은 대소문자를 가립니다. "Seoul"과 "seoul"이 서로 다른 값으로 걸러지니 조건에 적는 글자는 표에 있는 그대로 옮깁니다.


내 표가 이런 모양일 때

깨끗한 예제와 실제 장부는 생김새가 다릅니다

교과서에 나오는 표는 머리글 한 줄에 빈 행이 없고 숫자 열에는 숫자만 들어 있습니다. 회사에서 받아 오는 표는 그렇지 않습니다. 위쪽에 제목 줄이 하나 더 얹혀 있거나, 월이 바뀌는 자리마다 빈 줄이 끼어 있거나, 누군가 보기 좋으라고 칸을 병합해 둔 상태로 옵니다. 수식은 그대로인데 결과만 이상해지는 경우는 대개 함수가 아니라 이 모양 때문입니다. 아래 네 가지가 QUERY를 가장 자주 흔드는 모양입니다.

표의 모양 고치는 자리
머리글이 두 줄이다 맨 뒤 숫자를 1이 아니라 2로 적습니다. 두 줄을 하나로 합쳐 읽습니다
중간에 빈 행이 섞여 있다 조건에 where B is not null을 붙입니다. 그러지 않으면 이름 없는 줄이 그룹으로 하나 생깁니다
값 뒤에 공백이 붙어 있다 "서울"과 "서울 "이 서로 다른 그룹으로 갈립니다. 원본 열을 TRIM으로 한 번 다듬고 그 결과를 범위로 삼습니다
금액 열에 텍스트가 섞여 있다 가장 성가신 모양입니다. 다음 항목에서 따로 봅니다

지금 해보세요 — 확인

결과에 이름 없는 줄이 하나 끼어 있다면 빈 행 때문입니다. 조건문에 where B is not null 한 마디를 넣고 다시 봅니다.

주의 — 병합된 셀은 범위에 넣지 않습니다

머리글을 보기 좋게 병합해 둔 표가 많습니다. 병합된 칸은 첫 칸에만 값이 있고 나머지는 비어 있어서, QUERY가 그 열을 통째로 빈 열로 읽는 일이 생깁니다. 병합을 풀고 값을 채운 뒤에 범위를 잡습니다.


합계가 실제보다 작게 나올 때

오류도 안 뜨는데 숫자만 모자란 경우입니다

QUERY는 열마다 자료형을 하나로 정합니다. 한 열에 숫자와 글자가 섞여 있으면 많은 쪽을 그 열의 자료형으로 잡고, 적은 쪽은 빈 칸처럼 다룹니다. 금액 열에 텍스트로 들어온 값이 몇 개 있으면 그 값들이 합계에서 조용히 빠집니다. 오류가 안 뜨니 알아채기도 어렵습니다. 눈으로는 1,200이라고 똑같이 적혀 있고 셀을 눌러 봐도 값이 그대로 보이는데, 합계만 그만큼 모자랍니다.

주의 — 표시 형식만 바꿔서는 숫자가 되지 않습니다

텍스트로 들어온 값에 통화나 숫자 서식을 걸어도 겉모습만 달라집니다. 값 자체가 글자로 남아 있는 한 합계는 그대로 모자랍니다.

단서가 하나 있는데, 숫자는 칸 오른쪽에 붙고 텍스트는 왼쪽에 붙습니다. 금액 열을 훑어보다 유독 왼쪽으로 밀린 칸이 보이면 그 칸이 범인입니다. 다만 오른쪽 맞춤을 손으로 걸어 둔 표에서는 이 단서가 통하지 않아서, 세어 보는 쪽이 확실합니다. COUNT는 숫자만 세고 COUNTA는 값이 있는 칸을 다 셉니다. 두 값이 다르면 그 차이만큼이 텍스트입니다. 숫자처럼 보이는데 텍스트인 값이 어디서 들어오는지는 따로 정리해 두었습니다.

지금 해보세요 — 해결

금액 열 옆 빈 칸에 아래 두 수식을 넣어 값을 비교합니다.

=COUNT(C2:C) =COUNTA(C2:C)

숫자가 다르면 그 열을 =VALUE(C2)로 한 열 옮겨 놓고, 그 새 열을 범위에 넣어 다시 더합니다.

숫자가 텍스트로 들어오는 통로는 대체로 정해져 있습니다. 붙여 넣기, 내려받은 CSV, 그리고 다른 문서에서 옮겨 온 표입니다. PDF 표를 옮길 때 숫자가 죽는 자리도 같은 이유로 생깁니다. 통로를 알고 있으면 다음번에는 표를 받자마자 COUNT부터 재게 됩니다.


자주 묻는 질문

본문에서 다루지 않은 것만 모았습니다

Q.엑셀에서도 QUERY를 쓸 수 있습니까

A.없습니다. 구글 시트에만 있는 함수라 엑셀에 붙여 넣으면 이름을 모르는 함수라는 오류가 납니다. 엑셀에서는 SUMIFS를 여러 줄 쓰거나 피벗 테이블로 같은 결과를 만듭니다. 반대로 시트에서 만든 파일을 엑셀 형식으로 내려받아도 QUERY 자리는 값만 남고 수식은 사라집니다.

Q.조건을 셀에서 받아오려면 어떻게 합니까

A.문장을 끊고 셀 주소를 이어 붙입니다. "... where D = '"&F1&"' group by B" 꼴입니다. 작은따옴표가 셀 값을 감싸도록 자리를 맞추는 것이 요령입니다. 조건 칸을 비워 두면 아무 행도 안 걸리므로, 목록에서 고르도록 데이터 확인 기능을 걸어 두면 오타로 비는 일이 줄어듭니다.

Q.결과 열 제목이 sum 금액처럼 나옵니다

A.문장 끝에 label을 붙여 바꿉니다. label sum(C) '합계'처럼 적으면 그 열 제목만 바뀝니다.

Q.합계가 큰 지점부터 보고 싶습니다

A.group by 뒤에 order by sum(C) desc를 붙입니다. 순서는 select, where, group by, order by, label 차례를 지켜야 합니다.

Q.날짜로 기간을 자르려면 어떻게 씁니까

A.날짜는 글자와 다르게 적습니다. where A >= date '2026-09-01'처럼 date라는 말을 앞에 붙이고 연월일을 하이픈으로 잇습니다.


위에서부터 체크하기

결과가 이상할 때 이 순서로 짚습니다

오류가 났을 때와 숫자가 모자랄 때는 볼 곳이 다릅니다. 오류는 문장 어딘가가 어긋난 것이고, 숫자가 모자란 것은 데이터가 어긋난 것입니다. 그래서 오류부터 없앤 다음에 숫자를 맞춰야 순서가 꼬이지 않습니다. 반대로 하면 데이터를 한참 다듬어 놓고도 수식이 안 돌아 확인할 방법이 없습니다.

지금 해보세요 — 확인

조건과 묶기를 다 지우고 select만 남겨 봅니다. 그것도 오류가 나면 범위나 열 문자가 문제이고, 잘 나오면 뒤에 붙인 문장이 문제입니다.

아래 목록은 위에서 아래로 내려가며 하나씩 짚는 순서입니다. 위쪽 넷은 문장을 보는 항목이고 아래쪽 셋은 데이터를 보는 항목이라, 중간에서 걸리면 그 아래는 볼 필요가 없습니다. 여섯 번째 항목까지 다 통과했는데도 숫자가 안 맞으면 범위가 표 아래쪽 일부를 빠뜨리고 있는지 봅니다.

정리 — 위에서부터 체크하세요

□ 수식 오른쪽과 아래가 비어 있는가

□ 조건문의 문자가 시트 열 문자와 같은가

□ 조건의 글자를 작은따옴표로 감쌌는가

□ 맨 뒤 머리글 숫자가 실제 머리글 줄 수와 같은가

□ 이름 없는 그룹이 생겼다면 is not null을 넣었는가

□ COUNT와 COUNTA 값이 같은가

□ 열을 넣거나 지운 뒤 문장 속 문자도 고쳤는가

#구글시트 #QUERY함수 #조건별합계 #SUMIFS #스프레드시트 #함수와수식

광고자리 · 글 아래