본문 바로가기
카테고리 없음

피벗 없이도 되는 요약: SUMIFS·COUNTIFS로 월×범주 리포트 뽑기

by 시트자동화 2025. 8. 15.

매출 리포트를 만들 때마다 피벗 테이블을 새로 만들고 서식을 손보는 일이 반복되면 관리가 번거롭습니다. 구조가 단순하고 규칙이 뚜렷한 데이터라면, SUMIFS·COUNTIFS만으로도 “월 × 카테고리” 요약과 평균단가·주문건수 같은 핵심 지표를 충분히 계산하실 수 있습니다. 이 글에서는 실제로 사용할 수 있는 CSV 샘플과 함께, 피벗 없이도 견고한 집계를 만드는 공식을 안내드립니다.

자료 내려받기

샘플 데이터 설명: 필드 사전과 예시

상세 데이터에는 일자별 거래가, 요약본에는 월·범주 기준의 합계가 담겨 있습니다. 아래 표로 스키마를 한눈에 확인하실 수 있습니다.

상세 · 05_sales_enriched.csv

컬럼 의미 예시값 형식·비고
date 거래일 2025-02-03 YYYY-MM-DD
category 범주 B A/B/C/D
qty 수량 4 정수
price 단가 12000 정수(원)
revenue 매출액 48000 qty×price 파생
month_end 월 인덱스 2025-02-28 EOMONTH(date,0)

요약 · 05_summary_by_month_category.csv

컬럼 의미 예시값 형식·비고
month_end 월 인덱스 2025-02-28 YYYY-MM-DD(월말)
category 범주 B A/B/C/D
qty_sum 수량 합계 115 정수
revenue_sum 매출 합계 1,230,000 정수(원)
orders 거래 건수 31 행 수

왜 굳이 ‘월말’을 키로 쓰나요?

월을 나타내는 키를 임의 날짜(2025-02-03 등)로 두면 같은 달이라도 서로 다른 값으로 인식될 위험이 있습니다. EOMONTH(date,0)로 월말을 키로 통일하면 “동일 월=동일 값”이 보장되어 조건 합계가 안정적으로 작동합니다.

만들어보는 요약표: 셀 한 줄씩 따라가기

  1. 월 인덱스 만들기
    상세 데이터에서: =EOMONTH([@date],0)
  2. 월×범주 매출 합계
    =SUMIFS(revenue_range, month_end_range, 기준월, category_range, 기준범주)
  3. 월×범주 수량 합계
    =SUMIFS(qty_range, month_end_range, 기준월, category_range, 기준범주)
  4. 월×범주 건수(행 수)
    =COUNTIFS(month_end_range, 기준월, category_range, 기준범주)
  5. 평균 단가(선택)
    =IFERROR(매출합계/수량합계,"") — 0으로 나누는 상황을 공란 처리합니다.

실수 줄이는 규칙 몇 가지

  • 범위 길이는 반드시 동일SUMIFS·COUNTIFS의 모든 조건 범위는 행 수가 같아야 합니다.
  • 빈값 정책을 문서화 — 데이터가 누락된 경우 0으로 볼지 공란으로 둘지 미리 정해 두시면 해석이 안정적입니다.
  • 테이블(표) 사용 — 열 추가·이동에도 참조가 끊어지지 않습니다. 구조적 참조를 권장드립니다.

속도 이슈가 보일 때의 해법

행 수가 커지면 재계산이 느려질 수 있습니다. 완성된 요약 결과는 값으로 확정하고, 원본 상세는 별도 시트에 보관하여 요약 시트 -> 상세 시트 단방향 참조만 남겨두시면 체감 속도가 크게 좋아집니다. 또한 전체 열(A:A) 대신 실제 데이터 영역(표 범위)만 지정해 주세요.

응용: Top-N와 전년동기

  • Top-N 범주=TAKE(SORT(요약범위, 매출합계열, -1), N)처럼 정렬 후 상위 N개를 취합니다.
  • 전년동기 비교 - 기준월의 전년 월은 =EDATE(기준월,-12). 두 월의 매출 합계를 나란히 조회해 증감률을 계산하시면 됩니다.

검증용 미니 체크

-- 범위 길이 동등성
=ROWS(month_end_range)=ROWS(category_range)=ROWS(revenue_range)

-- 건수 합 검증(월별)
=SUMIFS(orders_range, month_end_range, 기준월) = COUNTIF(month_end_range, 기준월)

-- 평균단가 방어
=IFERROR(매출합계/수량합계,"")  -- 수량합계=0이면 공란

정리하며

피벗 없이도 조건 합계만으로 충분히 깔끔한 월간 리포트를 만들 수 있습니다. 핵심은 월말 키의 일관성조건 범위 길이 일치, 그리고 빈값 처리 정책입니다. 위의 샘플 CSV를 그대로 가져오셔서 공식을 복사해 보시면, 같은 구조의 실데이터에도 무리 없이 적용되실 겁니다.