914. 책 후기를 엑셀 셀 하나로 자동 분류·점수화하기
감성 분류(긍정/부정)와 1~10점 정량 점수를 자동으로 채웁니다.
기존의 업무 범위와 방법
온라인 서점·자사몰·교사 커뮤니티에 흩어진 도서 후기는 매월 수백~수천 건 단위로 쌓입니다. 그러나 후기가 "데이터"로 활용되기 위해서는 누군가 한 줄씩 읽고 분류·점수화하는 정성 작업이 필요합니다.
PROBLEM 1한 줄씩 읽고 분류하는 정성 작업
후기 한 건당 1~2분, 수백 건이면 하루 종일이 소요됩니다. 도서별 비교·연간 추세 분석은 시작도 하기 어려운 작업량입니다.
PROBLEM 2정성 평가만 가능, 정량 비교 불가
"이 책은 호평이 많다"는 인상만 있고, "8.7점 vs 6.2점"처럼 도서·시리즈를 정량적으로 비교할 수 있는 지표가 없습니다.
PROBLEM 3분류 기준이 사람마다 다름
"좋지만 분량이 많다" 같은 혼합 후기를 누가 분류하느냐에 따라 긍정/부정이 갈립니다. 시점·담당자가 바뀌면 결과도 흔들립니다.
AI 활용 방법
담당자가 이미 익숙한 Excel 환경 안에서, =SUM()·=VLOOKUP()처럼 =gpt() 함수를 사용하도록 만듭니다. 새로운 도구를 학습하지 않고, 한 줄의 수식만 입력하면 셀이 자동으로 GPT의 답으로 채워집니다.
A열: 도서명, B열: 후기 본문 형식으로 한 시트에 정리합니다. 별도 DB나 BI 도구 없이 Excel 한 파일이면 충분합니다.gpt() 사용자 정의 함수(UDF)를 등록합니다. 이 함수가 셀에서 받은 프롬프트와 데이터로 OpenAI Chat API에 POST 요청을 보내고 응답 본문을 셀에 반환합니다.AI 활용 결과물
GPT 함수가 작동한 결과 화면
아래는 =gpt(...) 수식이 적용된 시트입니다. C열(감성)과 D열(점수)이 GPT 응답으로 자동 채워지고, 수식 입력줄에는 호출된 프롬프트가 그대로 보입니다.
| A 도서명 | B 독서 후기 | C 감성 | D 점수 |
|---|---|---|---|
| Why? 인체과학 | 초등 4학년 우리 아이가 6학년 동생과 함께 보는데, 그림이 자세하고 설명이 친근해서 어려운 의학 용어도 자연스럽게 익히게 됩니다. 강력 추천합니다. | 긍정 | 10 |
| 큐브수학 초등 5-1 | 수학 학원 다니지 않고 이 책 한 권으로 정리합니다. 한 단원당 분량이 적절해서 아이가 집중력을 잃지 않고 끝까지 풀 수 있어 만족합니다. | 긍정 | 9 |
| 올리드 중학 영어1 | 기대가 컸는데 실망이 컸습니다. 단원 평가 난이도가 갑자기 너무 높게 튀고, 해설은 너무 간단해서 아이가 혼자 채점하다가 결국 포기했어요. 환불 고민 중입니다. | 부정 | 2 |
| 초등 국어 문해력 어휘 4학년 | 친절한 설명은 좋지만 그만큼 분량이 늘어나서 진도가 빠른 학생에게는 다소 답답하게 느껴질 수 있습니다. | 긍정 | 6 |
| 하이탑 고등 물리학Ⅰ | 그림은 좋은데 종이 질이 가벼워서 자주 보다 보니 모서리가 금방 닳아, 가격 대비 내구성이 조금 아쉽다는 느낌을 받았습니다. | 부정 | 5 |
| 한국사 편지 1 | 역사적 사건과 인물이 편지글 형태로 친근하게, 단순 연표 암기가 아니라 인물의 상황 중심으로 한국사를 이해할 수 있어 정말 좋습니다. | 긍정 | 10 |
※ C2·D2 셀의 수식을 마지막 행까지 드래그하면 새 후기가 추가될 때마다 자동으로 분류·점수가 채워집니다.
100건 분석 결과 — 점수 분포
샘플 100건을 일괄 분석한 점수 분포입니다. GPT가 부여한 1~10점이 정성적 인상과 잘 맞고, 점수만으로 도서별·시리즈별 만족도를 한눈에 비교할 수 있게 됩니다.
=gpt(프롬프트, B2) 수식 입력 → ③ VBA 함수가 OpenAI API를 호출 → ④ 응답에서 본문만 추출해 셀에 반환 → ⑤ 수식 복사·드래그만으로 전체 후기 일괄 분석. 한 행이 분석되는 데 평균 1~2초가 소요됩니다.업무자동화 효과
EFFECT 1하루 작업이 몇 분으로 단축
후기 한 건당 1~2초로 처리되어, 수백 건의 정성 분류 작업이 셀 드래그 한 번으로 끝납니다. 담당자는 결과 해석에 시간을 쓸 수 있습니다.
EFFECT 2일관된 기준의 정량 지표 확보
분류·점수 기준이 프롬프트에 명시되어 누가 돌려도 같은 결과가 나오고, 1~10점 척도로 도서·시리즈·시점별 만족도를 평균·분포로 비교할 수 있습니다.
EFFECT 3데이터 수집·분석 주기 단축
자동화로 데이터를 더 자주 확인하게 되면서, 업무를 점검하고 개선하는 사이클 자체가 빨라집니다. 데이터 기반의 업무 프로세스가 자연스럽게 정착됩니다.
=gpt() 함수는 도서 후기뿐 아니라, 고객센터 문의 분류, 설문 응답 요약, 제품 리뷰 키워드 추출, 영업 미팅 메모 요약 등 "열 단위 텍스트 데이터의 일괄 처리"가 필요한 모든 업무에 그대로 재사용할 수 있습니다. 프롬프트만 바꾸면 됩니다.자동화 과정
전체 자동화는 "VBA 함수 한 개 + 셀 수식 두 종"으로 구성됩니다. 함수 코드는 한 모듈에 200줄 정도이며, 한 번 등록해두면 같은 통합문서 안에서 영구적으로 사용할 수 있습니다.
STEP 1 — VBA 에디터에서 gpt 함수 등록하기
등록 순서
- Excel을 열고 Alt + F11을 눌러 VBA 편집기를 연다.
- 좌측 프로젝트 창에서 현재 통합 문서를 우클릭 → 삽입 → 모듈을 선택한다.
- 새 모듈에
gpt()함수 코드를 그대로 붙여넣는다. - 코드 상단의
API_KEY상수를 자신의 OpenAI API 키로 교체한다. - 파일을 ".xlsm" (매크로 사용 통합 문서) 형식으로 저장한다.
- 시트로 돌아와 셀에
=gpt("프롬프트", B2)를 입력하면 곧바로 호출이 시작된다.
STEP 2 — gpt 함수의 내부 구조 (5단계)
사용자가 셀에 입력한 인자가 어떤 경로로 OpenAI 응답으로 바뀌어 돌아오는지를 보여줍니다.
' 설정값: API_KEY, MODEL_ID("gpt-4.1"), MAX_TOKENS(2000)
Public Function gpt(ByVal prompt As String, Optional ByRef data As Variant) As Variant
' [A] init : 프롬프트 인자 검증
' [B] range : 셀/범위 인자를 텍스트로 변환 (RangeToText)
' [C] body : Chat Completions 요청 JSON 구성 (JsonEscape)
' [D] http : MSXML2.XMLHTTP로 동기 POST 요청
' [E] parse : 응답 JSON에서 "content"만 추출해 셀에 반환 (ExtractContent)
End Function