나는 재무회계 22년차 회사원이다.
매달 월초가 되면 똑같은 보고서를 만든다.
계정과목별 지출, 전월 대비 증감, 매출 추이.
지난달 파일 복사 → 이름 바꾸기 → 숫자 갈아끼우기 → 수식 깨짐 → 아익후..
이 짓을 20년 했다. 여러분은 하지 마시라.
1~3편에서 클로브 MCP로 숫자를 뽑는 법을 배웠다.
그런데 대화창 안의 숫자는 대화가 끝나면 흘러가 버린다.
보고서는 쌓여야 힘이 생긴다. 월별로, 추이로.
클로브에서 뽑아 → 구글 시트에 쌓고 → QUERY로 보고서다.
역할 분담은 이렇다.
클로브 MCP는 숫자를 뽑고, 구글 시트는 창고가 되고, QUERY 함수가 보고서를 그린다.
한 번 세팅하면 다음 달부터는 숫자만 부어 넣으면 된다.
(드디어 내 전문 분야다. 구글 시트가 대세다.)
1️⃣ Claude에게 ‘시트에 쌓기 좋은 모양’으로 뽑게 한다
핵심은 뽑는 모양이다. 보고서 모양으로 뽑으면 안 된다.
데이터베이스 모양(세로형) 으로 뽑아야 한다.
6월 계정과목별 입출금 합계를 구글 시트에 붙여넣기 좋게
CSV 형태로 뽑아줘. 열 구성은 이렇게:
년월, 계정과목, 구분(수입/지출), 금액
보고서처럼 꾸미지 말고 데이터 행만 출력해줘.
년월,계정과목,구분,금액
2026-06,매출,수입,96500000
2026-06,매출원가,지출,48200000
2026-06,급여,지출,18300000
2026-06,세금과공과,지출,12400000
2026-06,차입금상환,지출,6800000
2026-06,수도광열비,지출,1900000
...
⚠️ “보고서처럼 꾸미지 말고”가 중요하다.
합계 행, 빈 줄, 들여쓰기가 섞이면 시트에서 데이터로 못 쓴다.
1행 1데이터. 이게 데이터베이스의 제1원칙이다.
2️⃣ 구글 시트에 ‘DB’ 시트를 만들고 쌓는다
- 구글 시트 새 문서를 만든다. 이름은
손익DB정도. - 시트 하나 이름을 DB로 바꾼다.
- A1에 머리글(년월, 계정과목, 구분, 금액)을 넣고, Claude가 준 CSV를 A2에 붙여넣는다.
- 붙여넣기 직후 뜨는 클립보드 아이콘에서 텍스트를 열로 분할을 누른다. (쉼표 기준으로 갈라진다.)
💡 여기서 한 수 더. 데이터 범위를 선택하고 서식 > 표로 변환을 누르자.
구글 시트의 표 객체다. 다음 달 데이터를 아래에 붙여넣으면
표 범위가 자동으로 늘어난다. 수식 범위 걱정이 사라진다.
다음 달부터의 루틴은 이게 전부다.
1️⃣의 프롬프트에서 년월만 바꿔 뽑고 → DB 시트 맨 아래에 붙여넣기. 끝!
3️⃣ QUERY 한 줄로 월간 보고서를 그린다
이제 ‘보고서’ 시트를 하나 만들고, QUERY를 쓴다.
🔹 이번 달 지출 순위표
=QUERY(DB!A2:D, "select B, sum(D) where A='2026-06' and C='지출' group by B order by sum(D) desc label sum(D) '금액'")
🔹 월별 × 계정과목 추이표 (피벗)
=QUERY(DB!A2:D, "select B, sum(D) where C='지출' group by B pivot A")
이 한 줄이면 열마다 월이 펼쳐지는 추이표가 자동으로 그려진다.
7월 데이터를 DB에 붙여넣는 순간, 7월 열이 알아서 생긴다.
지난달 파일 복사하던 인생과 여기서 작별한다.
🔹 매출총이익 요약
=SUMIFS(DB!D:D, DB!A:A,"2026-06", DB!B:B,"매출") - SUMIFS(DB!D:D, DB!A:A,"2026-06", DB!B:B,"매출원가")
🔹 추이 그래프는 스파크라인 한 줄
=SPARKLINE(QUERY(DB!A2:D, "select sum(D) where B='매출' group by A", 0), {"charttype","column"})
셀 안에 월별 매출 막대그래프가 그려진다. 짜잔.
4️⃣ 다음 달의 나: 3분 루틴
세팅이 끝났으니 다음 달부터는 이렇다.
- Claude에게: “7월 계정과목별 합계, 지난번과 같은 CSV 형식으로.”
- DB 시트 맨 아래에 붙여넣기.
- 보고서 시트의 QUERY 수식에서 년월만
'2026-07'로 바꾼다.
✅ 진짜 3분이다. 그리고 보고서 시트 링크를 사장님께 한 번만 공유해 두면,
다음 달부터는 “보고서 언제 나와?”라는 말 자체가 사라진다.
사장님이 열 때마다 최신이다.
🔎 심화학습 단계다. 초보자는 안 봐도 된다.
🔹 년월 하드코딩이 싫다면 — 셀 참조로 바꾼다
보고서 시트 B1에 2026-06을 넣고, QUERY를 이렇게 바꾼다.
=QUERY(DB!A2:D, "select B, sum(D) where A='"&B1&"' and C='지출' group by B order by sum(D) desc label sum(D) '금액'")
이제 B1만 바꾸면 보고서 전체가 그 달로 갈아입는다.
따옴표 조합('"&B1&"')이 처음엔 어지러운데, 원래 그런 거다.
작은따옴표-큰따옴표-앰퍼샌드 순서만 그대로 베끼면 된다.
🔹 월 마감 스냅샷은 Apps Script로 박제한다
QUERY 보고서는 살아있는 문서라 과거 시점이 안 남는다.
마감 시점을 박제하고 싶으면 확장 프로그램 > Apps Script에 이걸 붙여넣자.
function saveMonthlySnapshot() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const src = ss.getSheetByName('보고서');
const ym = Utilities.formatDate(new Date(), 'Asia/Seoul', 'yyyy-MM');
const dst = ss.insertSheet('마감_' + ym);
src.getDataRange().copyTo(dst.getRange(1, 1), {contentsOnly: true});
}
실행하면 마감_2026-06 시트가 생기고, 수식이 아니라 값으로 저장된다.
월 마감 후 한 번 실행하는 습관만 들이면 감사 대응 자료가 공짜로 쌓인다.
(처음 실행할 때 권한 승인 창이 뜬다. 쫄지 않아도 된다. 내 계정에 내가 승인하는 거다.)
💡 QUERY가 어렵다면 AI에게 짜달라고 하면 된다
제미나이에게 이렇게 물어보면 QUERY를 만들어 준다. (앱스 스크립트와 QUERY는 제미나이가 조금 낫다.)
구글 시트 DB 시트에 A열=년월, B열=계정과목, C열=구분, D열=금액 데이터가 있어.
월별로 계정과목이 행, 년월이 열로 펼쳐지는 지출 추이표를 만드는
QUERY 수식을 짜줘.
📊 치트시트: 오늘의 QUERY 패턴
| 패턴 | 수식 | 용도 |
|---|---|---|
| 필터+집계 | select B, sum(D) where A='2026-06' group by B |
월간 계정별 합계 |
| 정렬 | ... order by sum(D) desc |
큰 금액 순 |
| 피벗 | select B, sum(D) group by B pivot A |
월별 추이표 |
| 셀 참조 | where A='"&B1&"' |
년월 동적 변경 |
| 라벨 | label sum(D) '금액' |
머리글 이름 지정 |
| 미니 차트 | =SPARKLINE(QUERY(...), {"charttype","column"}) |
셀 안 그래프 |
다음 시간은 이 시리즈의 마지막 편, 13주 자금계획이다.
“다음 달 말에 대출 상환 돌아오는데, 돈 되나?”
사장님의 이 질문에 표 한 장으로 답하고,
매주 월요일 아침 자금일보가 알아서 도착하게 만드는 것까지 간다.
다음 시간이 기대된다면 댓글을 달아서 푸쉬하면 좀 더 빨리 볼 수 있다.