소상공인에게 매출 관리는 곧 현금흐름의 체온입니다. 오늘 몇 건이 팔렸는지, 어느 메뉴가 효자인지, 배달앱 수수료와 카드 수수료를 제하고 실제로 통장에 들어올 돈이 얼마인지, 다음 주 발주와 인건비를 감당할 수 있는지—이 질문에 매일 5분 안에 답할 수 있어야 운영이 안정됩니다. 문제는 현실의 장부가 제각각이라는 것. POS 엑셀, 배달앱 정산표, 카드 매출표, 자사몰 주문 내역이 흩어지고, 입력 기준(채널/메뉴명/결제수단)이 사람마다 달라 합치면 더 헷갈리는 상황이 흔합니다. 이런 환경에선 비싼 ERP보다, 구글 시트로 작고 단단한 표준을 먼저 세우는 게 빠르고 경제적입니다.
핵심은 세 가지입니다.
첫째, 입력은 단순하게—메뉴·수량·단가·채널·결제수단·할인 정도만 탭 하나에 기록하고 나머지는 자동 계산합니다.
둘째, 집계는 자동으로—ARRAYFORMULA로 월/주/요일 파생값을 만들고, QUERY/SUMIFS로 월 ×채널, 메뉴 Top, 결제수단별 정산표를 자동으로 뽑게 합니다.
셋째, 대시보드는 한눈에—이번 달 총매출·순입금(수수료 제외)·객단가·채널/결제 비중·시간대 히트맵이 1페이지에 보이게 구성합니다. 여기에 구글 폼을 붙이면 현장에서는 휴대폰으로 10초 입력, Apps Script로는 매일 밤 요약 메일·정산 예정표를 자동 전송할 수 있어 “기록 누락”과 “마감 스트레스”가 줄어듭니다.
업종별 장면을 떠올려 볼까요?
카페라면 ‘라테 2+1’ 프로모션을 쿠폰코드로 태깅해 효과를 수치로 확인합니다.
배달 식당은 배달앱별 수수료율과 정산주기를 코드표로 관리해 순입금과 입금예정일을 자동 계산합니다.
공방/학원은 수강권/자재비를 과세/면세로 구분해 월말 부가세 합산을 버튼 없이 끝냅니다.
온라인 셀러는 마켓별 수수료·배송/반품비를 함께 기록해 “잘 팔리지만 남지 않는” 상품을 걸러냅니다. 이처럼 한 번 입력한 데이터가 여러 관점으로 여러 화면에 자동 재사용되면, 숫자가 행동으로 바뀝니다.
이 글은 바로 따라 할 수 있도록 구성했습니다.
먼저 설계 파트에서 원천/코드표/가공/대시보드의 역할을 나누고, 드롭다운·유효성·조건부 서식으로 입력 오류를 원천 차단합니다. 다음으로 입력 간소화 파트에서 구글 폼으로 현장 입력을 10초로 줄이고, 수수료·부가세·정산일을 자동 계산하는 레시피를 제공합니다.
마지막으로 분석·대시보드 파트에서 KPI·메뉴/채널 인사이트·시간대/날씨 패턴·목표/알림까지 한 화면으로 묶는 방법을 안내합니다.
목표는 단순합니다.
“오늘 돈이 얼마나 들어왔고, 어디를 늘리고 줄일지”를 매일 5분 안에 결정하는 것. 이 작은 루틴이 쌓이면, 시트는 장부를 넘어 가게의 의사결정 시스템이 됩니다.
1) 설계: 입력은 단순하게, 표준은 코드표로, 집계는 자동으로
설계의 목적은 “누가 써도 같은 결과가 나온다”입니다. 매출 시트는 원천(입력)·코드표(표준)·가공(파생/집계)·대시보드(요약/차트) 4 분할이 가장 안정적입니다. 원천에는 사람이 직접 치는 값만, 계산·요약은 전부 가공과 대시보드에서 자동으로 만들도록 분리합니다. 이 분리가 되면 수식이 꼬이지 않고, 실수도 줄며, 속도도 빨라집니다.
권장 탭 구조
- 매출원천(Transactions): 일시, 메뉴, 수량, 단가, 채널, 결제수단, 할인, 세금구분, 비고
- 코드표(Codes): 메뉴 목록/분류, 채널(매장/포장/배달앱/자사몰/도매), 결제수단(현금/카드/PG/배달정산), 세금구분(과세/면세), 수수료율, 정산주기
- 가공(Model): 월/주/요일 파생열, 매출액/부가세/순입금 계산, 월 ×채널/메뉴 TOP 표
- 대시보드(Dashboard): KPI 카드, 추세/비중/랭킹 차트, 슬라이서
매출원천(입력) — 최소 필드만
- 일시: 날짜/시간 형식(YYYY-MM-DD HH:MM)
- 메뉴 · 수량(숫자) · 단가(숫자) · 할인(없으면 0)
- 채널 · 결제수단 · 세금구분(과세/면세)
- 비고(쿠폰코드·프로모션명 등)
입력은 여기에 끝입니다. “매출액”, “부가세”, “순입금” 등 계산값은 가공 탭에서 자동으로 만듭니다. 입력칸은 흰색, 계산칸은 회색으로 칠하면 실수 편집을 줄일 수 있습니다.
코드표 — 모든 라벨을 표준화
- 메뉴 목록: 메뉴명, 분류(커피/디저트/세트 등), 원가(선택), 세금구분(메뉴별 과세/면세)
- 채널: 매장/포장/배달앱A/배달앱B/자사몰/도매
- 결제수단: 현금/카드/PG/배달정산
- 수수료 테이블: 채널/결제수단별 수수료율(예: 배달앱 A 12%, 카드 2.5%, PG 3.3%)과 정산주기(일수)
원천 탭의 해당 열을 선택하고 데이터 > 데이터 유효성에서 코드표 범위를 연결하면 드롭다운 칩이 생기고 오타가 사라집니다. 특히 메뉴명·채널·결제수단은 반드시 유효성으로 제한하세요.
가공 — 파생열과 계산을 자동으로
- 월/주/요일 파생:
=ARRAYFORMULA(IF(Transactions! A2:A="", "", TEXT(Transactions! A2:A, "yyyy-mm")))
=ARRAYFORMULA(IF(Transactions! A2:A="", "", WEEKNUM(Transactions! A2:A)))
=ARRAYFORMULA(IF(Transactions! A2:A="", "", TEXT(Transactions! A2:A, "ddd")))
- 매출액 = 수량 ×단가 − 할인:
=ARRAYFORMULA(IF(Transactions! A2:A="", "", N(Transactions! C2:C)*N(Transactions! D2:D) - N(Transactions! H2:H)))
- 부가세(과세만):
=ARRAYFORMULA(IF(Transactions! A2:A="", "", IF(Transactions! G2:G="과세", ROUND((N(Transactions! C2:C)*N(Transactions! D2:D)-N(Transactions! H2:H))/11,0), 0)))
- 순매출(부가세 제외):
=ARRAYFORMULA(IF(Transactions! A2:A="", "", (N(Transactions! C2:C)*N(Transactions! D2:D)-N(Transactions! H2:H)) - [부가세열]))
- 순입금(수수료 제외) — 코드표의 수수료율을 VLOOKUP으로 매칭:
=ARRAYFORMULA(IF(Transactions! A2:A="", "", [매출액열] * (1 - VLOOKUP(Transactions! E2:E, 수수료표! A:B, 2, FALSE))))
- 정산예정일 — 발생일 + 정산주기(일수):
=ARRAYFORMULA(IF(Transactions! A2:A="", "", DATEVALUE(Transactions! A2:A) + VLOOKUP(Transactions! E2:E, 수수료표! A:C, 3, FALSE)))
집계 표 — 보고용 뼈대
- 월 ×채널 합계:
=QUERY({월열, Transactions! E2:E, [매출액열], [순입금열]}, "select Col1, Col2, sum(Col3), sum(Col4) where Col1 is not null group by Col1, Col2 order by Col1", 0)
- 메뉴 TOP 10(이번 달):
=QUERY({Transactions! B2:B, [매출액열]}, "select Col1, sum(Col2) where Col1 is not null and date '"&TEXT(EOMONTH(TODAY(),-1)+1, "yyyy-mm-dd")&"' <= date(Transactions! A2:A) group by Col1 order by sum(Col2) desc limit 10", 0)
- 결제수단 비중:
=QUERY({Transactions! F2:F, [순입금열]}, "select Col1, sum(Col2) group by Col1 label sum(Col2) ''", 0)
조건부 서식·보호 — 데이터 품질 가드
- 오류 신호: 수량≤0, 단가≤0, 세금구분 빈칸, 매출액 <0 → 배경색 경고
- 입력/계산 영역 구분: 입력 열은 흰색, 계산 열은 회색/잠금
- 보호: 가공/대시보드 탭은 범위 보호, 원천만 편집 허용
업종별 설계 팁
- 카페/베이커리: 메뉴 분류(음료/디저트/세트), 시간대 히트맵용 시간 파생열(HOUR) 추가
- 배달 식당: 채널별 수수료율·정산주기 필수, 배달앱 쿠폰/광고비를 별도 열로 관리해 실순이익 파악
- 온라인 셀러: 배송비/반품비 열 추가, 순수익=순입금-배송-반품 계산
- 도소매: 도매 채널 분리, 세금계산서 발행 체크박스 열 추가
설계 체크리스트
- 원천에는 직접 입력만, 계산은 가공/대시보드에서만 하는가?
- 메뉴/채널/결제수단은 드롭다운으로 표준화했는가?
- 월/주/요일 파생, 매출액/부가세/순입금 계산이 ARRAYFORMULA로 자동인가?
- 월 ×채널/메뉴 TOP/결제비중표가 QUERY 하나로 재현되는가?
- 오류 신호(조건부 서식)와 편집 보호가 적용돼 있는가?
요약하면, 입력은 간단하게, 표준은 코드표로, 계산은 ARRAYFORMULA로, 집계는 QUERY로. 이 네 가지만 지켜도 “엑셀 몇 장을 매일 붙이던” 수고가 사라지고, 매출은 매일 같은 방식으로 자동 정리됩니다. 그 순간부터는 숫자를 모으는 사람이 아니라, 숫자로 결정하는 사람이 됩니다.
2) 입력을 10초로: 구글 폼 현장 입력·모바일 최적화·수수료·정산 자동화
소상공인은 바쁩니다. 입력 과정이 번거로우면 지속이 어렵습니다. 해결책은 구글 폼으로 현장 입력을 10초로 줄이고, 시트에서는 수수료/세금/정산을 자동 계산하는 것입니다.
구글 폼 구성
- 질문: 일시(기본), 메뉴(드롭다운), 수량(숫자), 단가(숫자), 채널(드롭다운), 결제수단, 할인, 세금구분, 비고
- 메뉴/채널/결제수단은 코드표에서 목록을 복사해 사용(오타 차단)
- 모바일 홈화면에 폼 바로가기를 추가 → 계산 직후 즉시 입력
응답 → 원천으로 자동 반영
- 가장 단순한 방법: 응답 시트를 그대로 원천으로 사용(헤더 일치)
- 정교하게: 응답 시트를 별도 두고, ARRAYFORMULA 또는 Apps Script로 원천에 추가 기록
수수료·정산 자동화
- 코드표에 채널별 수수료율(예: 배달앱 A 12%, 카드 2.5%)과 정산주기(주/격주)를 등록
- 순입금액:
=매출액 * (1 - 수수료율)
· 정산예상일:=발생일 + 정산주기
- 정산 달력 표를 만들어 주 단위로 입금예상을 합산 → 현금흐름 가시화
세금 처리(간이·일반)
- 과세/면세 구분으로 매출액과 부가세를 분리
- 월말 부가세 합계표: 과세 매출 총액, 부가세(10%), 면세 매출 총액
- 현금영수증/세금계산서 발행분 체크 열을 두고 누락 방지
반품/환불 처리
- 유형 열을 추가(판매/반품/환불). 반품은 수량 음수 또는 별도 열로 표기
- 정산·부가세 표에서 반품분은 차감 처리
실전 예시(카페)
- 메뉴: 아메리카노/라테/디저트, 채널: 매장/포장/배달앱 A
- 배달앱 A 수수료율 12% → 순입금액 자동 계산
- “평일 14~16시 라테 2+1” 프로모션을 쿠폰코드 열로 태깅 → 쿠폰 효율 집계
실전 예시(온라인 셀러)
- 채널: 자사몰/마켓 A/마켓 B/라이브커머스
- PG 수수료·마켓 수수료 상이 → 코드표로 수수료율 매핑
- 배송비/반품비 열을 별도 두고 순수익=매출-수수료-배송-반품 자동 계산
체크리스트
- 입력은 폼으로 최대 10초, 오타는 드롭다운으로 차단
- 수수료·세금·정산은 시트가 계산, 사람은 확인만
- 반품/환불을 구조적으로 기록해 재집계가 가능하게
3) 분석·대시보드: KPI·메뉴/채널 인사이트·시간대/날씨·목표·알림
대시보드는 결론이 먼저 보이는 화면이어야 합니다. 상단에 이번 달 KPI, 중단에 추세/비중, 하단에 메뉴 TOP·채널 성과·시간대 패턴을 배치하고, 슬라이서로 기간/채널을 바꾸면 회의가 5분 만에 끝납니다.
KPI 카드(상단)
- 이번 달 총매출, 순입금액(수수료 제외), 영업일수, 객단가, 방문 수(가능 시), 전년 동월 대비%
- 전월 대비 증감 화살표/색상으로 상태 표현
메뉴/채널 인사이트
- 메뉴 TOP 10: 매출액·수량·마진(가능 시) · 추천: 메뉴별 마진율 열을 추가해 “잘 팔리고 잘 남는” 조합을 상단에
- 채널 비중: 도넛 → 배달 의존도 과도 시 경고 색상
- 결제수단 비중: 현금/카드/PG/배달정산 비율로 실물 현금흐름 파악
시간대·요일 패턴
- 시간대별 매출(히트맵): 행=요일, 열=시간대(예: 9~21시), 값=매출 합계 → 피크타임 인력/재고 배치 최적화
- 요일별 매출/객단가: 월~일 패턴 확인, 프로모션 시간대 선정
날씨 연동(선택)
- 날짜별 날씨(비/맑음/온도)를 옆 열에 기록하거나 외부 시트에서 IMPORTRANGE
- 비 오는 날 배달 비중↑, 아이스 음료↑ 같은 상관을 표로 표시
목표·경보
- 월 목표 매출/순입금액을 KPI 카드 옆에 배치, 진행률(%)로 시각화
- 일 매출이 목표 대비 -X% 이하이면 경보 색 또는 알림
Apps Script 알림(선택)
function mailDailySales(){
const ss=SpreadsheetApp.getActive();
const sh=ss.getSheetByName('가공');
const today=Utilities.formatDate(new Date(),Session.getScriptTimeZone(),'yyyy-MM-dd');
const rg=sh.getRange('A1:D15').getDisplayValues(); // 요약 표 범위
let html='<h3>일일 매출 요약</h3><table border=1 cellspacing=0 cellpadding=6>';
rg.forEach(r=>html+=`<tr><td>${r.join('</td><td>')}</td></tr>`);
html+='</table>';
GmailApp.sendEmail(Session.getActiveUser().getEmail(),`[매출] ${today}`, 'HTML 보기 필요',{htmlBody:html});
}
트리거(시간 기반)로 매일 밤 10시에 발송되게 설정하면 마감 확인이 쉬워집니다.
보고 레이아웃 추천
- 상단: 총매출·순입금·객단가·전월대비%
- 중단 좌: 월/주 추세(선) · 중단 우: 채널/결제 비중(도넛)
- 하단 좌: 메뉴 TOP·마진율 · 하단 우: 시간대 히트맵/요일 패턴
- 슬라이서: 기간·채널·결제수단
운영 규칙
- 원천은 직접 수정 금지, 오기입은 정정행으로 기록
- 대시보드는 보기 전용 공유, 수식/요약 셀은 범위 보호
- 월말에 버전 이름 저장(되돌릴 지점 확보)
결론: 작고 단단한 루틴이 매일의 현금을 지킨다
소상공인에게 데이터는 어렵지 않아야 계속됩니다. 구글 시트는 설치도 비용도 크지 않으면서, 입력 간편화(폼·드롭다운), 집계 자동화(QUERY/SUMIFS/ARRAYFORMULA), 보고 시각화(차트·슬라이서), 운영 자동화(Apps Script)까지 한 장 짜리 시스템을 완성해 줍니다. 오늘 구조만 잘 잡아두면 내일부터는 숫자가 스스로 쌓이고, 화면은 스스로 갱신됩니다. 그 결과 우리는 매일 “얼마 벌었나”를 넘어서 “어디를 줄이고 어디를 늘릴지”를 빠르게 결정할 수 있습니다.
지금 당장 할 일은 세 가지입니다. 첫째, 원천/코드표/가공/대시보드 탭을 만들고 드롭다운·조건부 서식을 적용하세요. 둘째, 구글 폼으로 현장 입력을 10초로 줄이고 수수료·세금 계산을 자동화하세요. 셋째, 대시보드에 KPI·메뉴 TOP·채널비중·시간대 히트맵을 배치해 매일 1분 점검 루틴을 만드세요. 작은 루틴이 쌓이면 매출은 예측 가능해지고, 정산 스트레스는 줄며, 프로모션과 발주, 인력 배치까지 데이터로 말하는 운영이 시작됩니다. 오늘 만든 시트가 내일의 현금흐름을 지켜 줄 것입니다.