AI 데이터 분석 프롬프트 5종: 취소 주문을 분리해 445,000원을 검산하기

합계가 맞아 보여도 취소 주문까지 섞였다면 분석 목적에는 맞지 않습니다. 이번 예제는 주문 여섯 건의 할인 후 금액 485,000원에서 취소 금액 40,000원을 분리해 집계액 445,000원을 확인합니다. 다섯 프롬프트를 입력 진단, 계산, 예외, 비교, 다음 확인으로 나눠 어느 단계에서 틀렸는지 찾습니다.

숫자와 주문은 직접 만든 가상 입력 데이터입니다. 매출 실적이나 실제 모델 응답이 아니며 세금·배송료·회계 수익 인식 기준도 포함하지 않습니다. 이 글의 ‘집계액’은 아래에서 정한 완료 주문의 할인 후 금액만 뜻합니다.

가상 주문 O101~O106의 할인 후 금액과 완료 집계 금액, 취소 O105의 집계 0원 및 세 합계 관계
설명용 도해: 가상 주문 6건의 할인 후 합계 485,000원은 완료 5건의 집계액 445,000원과 취소 1건의 금액 40,000원으로 나뉩니다. O105 취소 행은 원본에 보존하고 집계 금액을 0원으로 분리하는 기대값 설명도입니다.

주문 여섯 건과 계산 정의

주문ID 지역 수량 단가 원 할인 원 상태
O101 서울 3 40000 0 완료
O102 부산 2 40000 10000 완료
O103 서울 5 30000 0 완료
O104 부산 1 50000 0 완료
O105 서울 2 20000 0 취소
O106 부산 3 20000 5000 완료

할인 후 금액은 수량×단가−행 할인액입니다. 할인은 단가당 값이 아니라 주문 한 행의 값입니다. 취소 행도 입력에서 지우지 않고 집계 금액을 0으로 분리합니다. 이 가상 입력에서 할인액 누락과 숫자 0은 구분합니다.

프롬프트 1: 계산 전에 입력 오류 찾기

fixture.json의 orders를 검사한다. 주문ID 중복, 숫자 누락,
수량 0 이하, 음수 단가·할인, 주문금액보다 큰 할인,
완료·취소 이외 상태가 있으면 계산하지 말고 행 ID와 오류를 쓴다.
빈 값을 0으로 바꾸거나 중복을 임의 삭제하지 않는다.

기본 입력은 여섯 행, ID 중복 없음, 완료 5행과 취소 1행입니다. O104를 한 번 더 넣어도 합계만 다시 계산하는 답은 이 계약을 지킨 것이 아닙니다.

프롬프트 2: 행 계산과 두 합계 검산

행별 할인후=수량*단가-할인액을 계산한다.
상태가 완료인 행만 집계액에 넣고 취소 행은 별도 합산한다.
전체 할인후 합계=완료 집계액+취소 금액인지 확인한다.
계산값과 사용한 주문ID를 함께 제시한다.

가상 주문의 기대 행 금액은 120,000·70,000·150,000·50,000·40,000·55,000원입니다. 예제의 전체 할인 후 485,000원은 완료 집계 445,000원과 취소 40,000원의 합입니다. O106 할인 5,000원을 수량 세 번만큼 빼면 이 결과와 어긋납니다.

프롬프트 3: 이상과 취소를 구분하기

규칙 위반 행과 정상적인 취소 행을 분리한다.
O105는 취소 상태라는 이유만으로 데이터 오류로 부르지 않는다.
현재 입력에서 가장 큰 완료 집계 행을 ID와 금액으로 찾는다.
통계적 이상치 기준이나 원인을 자료 없이 만들지 않는다.

가상 예제 행의 최대 완료 집계는 O103의 150,000원입니다. 최대라는 사실만으로 부정 거래나 비정상 매출이라고 해석하지 않습니다. 이 예제에는 분포 기준이나 실제 업무 맥락이 없습니다.

정상 취소 O105와 최대 완료 O103의 구분 및 서울 270,000원·부산 175,000원·완료 집계 445,000원의 관계
설명용 도해: O105의 취소 금액 40,000원은 집계에서 0원으로 분리하고, 가장 큰 완료 주문 O103의 150,000원만으로 이상치를 단정하지 않습니다. 완료 주문의 서울 270,000원과 부산 175,000원을 합하면 445,000원입니다.

프롬프트 4: 지역별 합계 검산과 분모 고정

완료 주문만 지역별로 합산한다. 서울·부산 부분합의 합이
전체 완료 집계와 같은지 확인한다. 취소 주문을 지역 합계에 넣지 않는다.
비율을 계산한다면 분모는 445000원이라고 명시한다.

서울은 O101+O103으로 270,000원, 부산은 O102+O104+O106으로 175,000원입니다. 예제에서 두 지역의 합은 445,000원입니다. 실습의 서울 취소 행 O105를 더한 310,000원을 완료 합계라고 쓰면 전체와 맞지 않습니다. 비율 반올림보다 원 단위 합계부터 대조합니다.

프롬프트 5: 관찰과 다음 확인을 분리하기

확인한 숫자, 그 숫자로 알 수 없는 원인, 다음에 필요한 자료를 분리한다.
서울 합계가 크다는 이유로 광고를 늘리거나 부산 실적 악화를 단정하지 않는다.
취소 원인을 알아보려면 어떤 추가 필드가 필요한지 질문으로 남긴다.

이 자료로 확인되는 것은 지역 합계와 취소 금액입니다. 기간·고객 수·목표·취소 사유가 없으므로 성장률이나 운영 처방은 계산하지 않습니다. 다음 자료 요청에는 집계 기간, 취소 사유 정의, 주문 변경 이력을 포함할 수 있습니다.

첨부 셀과 독립 검산

주문검산 시트 A5:F10이 입력, G열이 할인 후 금액, H열이 완료 집계 금액입니다. B13:B17의 기대값은 차례로 485000, 445000, 40000, 270000, 175000입니다. 셀 수식과 Python은 같은 입력을 각각 계산합니다.

  1. ZIP을 풀고 python3 verify.py를 실행합니다. 고정 주문을 다시 계산해 정답 및 잘못된 응답과 비교합니다.

  2. XLSX 원본을 복사하고 B13:B17을 확인합니다. CSV는 같은 행의 입력과 계산 결과이며 수식은 포함하지 않습니다.

  3. 실제 모델 답을 시험한다면 expected.json의 키 계약으로 결과를 받고 원본을 response.json에 저장합니다.

  4. python3 verify.py response.json의 종료 코드와 불일치 필드를 확인합니다. 문장을 손으로 맞춰 합격 처리하지 않습니다.

Python csv.reader는 CSV 파일의 행을 읽는 객체를 반환합니다. Python CSV 안내를 참조해 내보낸 CSV의 행을 읽고, 저장한 통합문서의 값과 별도로 대조했습니다. 이것은 Excel 앱이나 실제 모델을 실행했다는 증거가 아닙니다.

주문검산 B13:B17의 정상 기대금액과 할인 빈칸·중복 ID·상태 오타 오류 시험 및 원문 대조 후 복원
설명용 도해: B13:B17의 기대값은 485,000·445,000·40,000·270,000·175,000원입니다. 실습 사본에서 E5 빈칸, A5 중복 ID, F5 상태 오타는 B14를 빈칸으로 멈추게 합니다. 원문 대조 후 E5=0, A5=O101, F5=완료로 복원하면 완료 집계 445,000원이 기대됩니다.

빈칸과 중복 때문에 계산이 멈췄다면

E5의 할인 0을 지우면 G5와 집계 합계 B14가 비어야 합니다. 누락을 알아차렸다면 원본에서 할인액을 확인하고 숫자 0으로 복원한 뒤 445,000원으로 돌아오는지 확인합니다. 빈칸에 의미를 추정해 넣지 않습니다.

A5를 O102로 바꾸면 ID 중복 때문에 집계 합계가 비어집니다. 원본을 대조해 O101로 복구합니다. F5를 완료됨으로 잘못 입력해도 멈춥니다. 이 첨부의 허용 상태는 완료·취소뿐이므로 새 상태가 필요하면 입력 계약과 계산 규칙을 먼저 정합니다.

원 단위 주문 여섯 건이라는 적용 한계

Python 검산기는 fixture.json의 원 단위 정수 입력용입니다. 새 주문을 넣으면 고정 정답도 독립 계산해 별도 파일로 보존해야 합니다. 소수 단가·환불 일부·외화·기간별 비교는 이 파일이 검증한 범위 밖입니다.

출처 원문 수집일: S1 2026-09-24.

이어서 연습할 글

검산한 숫자를 보고서로 옮긴 뒤에도 원본과 대조하는 방법은 Canva 보고서의 계획·완료·완료율 검산하기에서 이어집니다.

작성자 소개