Skip to main content

excel-to-report

This skill should be used when the user asks to "엑셀 분석 보고서 만들어줘", "데이터 종합 분석해줘", "파일들 연결해서 분석해줘", "원인 분석 PPT 만들어줘", "이번 달 실적 분석해줘", "불량 원인 찾아줘", "경영진 보고용 PPT", "데이터 분석 보고서", "excel analysis report", "multi-file analysis". Make sure to use this skill whenever the user provides multiple Excel files and wants cross-file analysis, root cause analysis, or a presentation report. This skill combines audit, cleaning, cross-analysis, visualization, and PPT generation into one workflow.

Informations de source

Dépôt
fivetaku/workmate
Dernière activité de la source
7 mai 2026 à 06:59
Langue détectée de SKILL.md
coréen
Étoiles
0
Forks
0

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
excel-to-report
description
This skill should be used when the user asks to "엑셀 분석 보고서 만들어줘", "데이터 종합 분석해줘", "파일들 연결해서 분석해줘", "원인 분석 PPT 만들어줘", "이번 달 실적 분석해줘", "불량 원인 찾아줘", "경영진 보고용 PPT", "데이터 분석 보고서", "excel analysis report", "multi-file analysis". Make sure to use this skill whenever the user provides multiple Excel files and wants cross-file analysis, root cause analysis, or a presentation report. This skill combines audit, cleaning, cross-analysis, visualization, and PPT generation into one workflow.
arguments
[{"name":"path","description":"분석 대상 엑셀 파일이 있는 폴더 경로 또는 개별 파일 경로","default":""}]
tools
["Bash","Read","Write","Glob","Grep","Agent"]
# Excel-to-Report > 여러 엑셀 파일을 입력받아 오딧 → 클리닝 → 크로스파일 분석 → 문제점 탐지 → 근본원인 분석 → 차트 시각화 → PPT 보고서까지 자동 생성합니다. --- ## WHEN TRIGGERED - EXECUTE IMMEDIATELY 이 스킬이 트리거되면 Phase 1부터 순서대로 실행한다. 사용자가 폴더/파일 경로를 이미 제공했으면 바로 시작, 아니면 경로를 물어본다. --- ## Preflight: Dependency Check ```bash python3 -c "import openpyxl" 2>/dev/null || python3 -m pip install --break-system-packages openpyxl python3 -c "import matplotlib" 2>/dev/null || python3 -m pip install --break-system-packages matplotlib python3 -c "import pptx" 2>/dev/null || python3 -m pip install --break-system-packages python-pptx python3 -c "import pandas" 2>/dev/null || python3 -m pip install --break-system-packages pandas ``` --- ## Phase 1: INGEST & AUDIT (수집 · 오딧 · 클리닝) **Type**: script + prompt ### Step 1-1: 파일 탐색 및 확인 1. 지정된 경로에서 `.xlsx`, `.xls`, `.csv` 파일을 Glob으로 탐색 2. 파일 목록을 사용자에게 제시: ``` 분석 대상 파일 N개를 확인했습니다: 1. 파일명.xlsx (시트 N개, 행 N개) 2. ... 이 파일들로 진행할까요? ``` **GATE 1**: 사용자 승인 없이 다음 단계 진행 금지. ### Step 1-2: 오딧 Python 스크립트(Bash)로 각 파일에 대해 자동 실행: | 검사 항목 | 방법 | |----------|------| | 수식 에러 | `#REF!`, `#VALUE!`, `#N/A`, `#DIV/0!` 탐지 | | 합계 검증 | 소계/합계 행의 값 ≠ 상세 행의 합산 | | 비율 검증 | 퍼센트 값 ≠ 분자/분모 계산값 | | 크로스시트 | 같은 워크북 내 시트 간 동일 항목 수치 불일치 | | 크로스파일 | 파일 간 동일 항목(매출, 생산량 등) 수치 불일치 | | 구조 이슈 | 병합셀 수, 숨겨진 행/열, 수식 유무, 혼합 타입 열 | 결과를 심각도별(Critical/Warning/Info) 테이블로 보고. ### Step 1-3: 클리닝 오딧 결과를 기반으로 AI 가독성 클리닝 실행: - 병합셀 해제 → 빈 셀에 원래 값 채우기 - 퍼센트 문자열("30.9%") → 숫자(0.309) 변환 - datetime 객체 → "YYYY-MM-DD" 문자열 정규화 - 소계/합계 행 구분을 위한 `row_type` 컬럼 추가 (data/subtotal/total) - 클린 파일은 `_clean.xlsx` 접미사로 **원본 보존 + 별도 저장** **원본 파일은 절대 수정하지 않는다.** --- ## Phase 2: CONNECT & DETECT (연결 · 탐지 · 원인분석) **Type**: script + prompt ### Step 2-1: 크로스파일 연결 분석 클린 데이터를 기반으로 Python으로 크로스파일 집계: - 일별/주별/월별 집계 (생산, 불량, 재고, 판매, 손익 등) - 라인별/제품별/거래처별 분해 - 파일 간 동일 지표 비교 (매출: 경영현황 vs 판매현황 등) ### Step 2-2: 문제 시점 탐지 통계적 이상치 및 패턴 이탈 탐지: - 달성률/불량률/이익률 등 핵심 지표의 시계열 이상치 - 주별 비교에서 분기 평균 대비 ±1.5σ 초과 구간 - 전월 대비 급변(±20% 이상) 시점 탐지 결과를 "문제 시점 목록"으로 정리. ### Step 2-3: 근본원인 구조 분석 **LLM이 담당** — 데이터 패턴에서 인과관계 가설을 생성: - Level 0 (외부 환경) → Level 1 (1차 대응) → Level 2 (생산 충격) → Level 3 (실적 영향) → Level 4 (경영 결과) - 모든 인사이트에 **출처 파일명 + 근거 수치** 필수 - 데이터 근거 없는 추정은 **"데이터 미확인 가설"**로 명시 - `references/기준값.md`가 있으면 판단 기준으로 참조 **GATE 2**: 근본원인 가설을 사용자에게 제시하고 승인/수정 요청. ``` 근본원인 분석 가설입니다: 1. [외부] ... 2. [1차 영향] ... 3. [경영 결과] ... 수정하거나 추가할 내용이 있으신가요? ``` --- ## Phase 3: VISUALIZE (시각화) **Type**: script 확정된 분석 결과를 기반으로 matplotlib 차트 자동 생성. ### 기본 차트 세트 (6종) | # | 차트 | 용도 | |---|------|------| | 1 | KPI 대시보드 | 핵심 지표 월별 비교 (카드 + 막대) | | 2 | 위기 타임라인 | 듀얼축 라인 + 이벤트 마커 (인과 시각화) | | 3 | 비용 구조 | 100% 누적 막대 (비용 비중 변화) | | 4 | 라인/부문 비교 | 그룹 막대 (피해 vs 정상 비교) | | 5 | 폭포(Waterfall) | 이익 변동 요인 분해 | | 6 | 회복 추적 | 불릿/게이지 (기준선 대비 현재 위치) | ### 차트 생성 규칙 - 한글 폰트 자동 감지 (우선순위): 1. Windows/WSL: `/mnt/c/Windows/Fonts/malgun.ttf` (맑은 고딕) 2. macOS: `Apple SD Gothic Neo` (system font) 3. Linux: `Nanum Gothic` (apt install fonts-nanum) 4. 최종 fallback: `DejaVu Sans` (한글 깨질 수 있음, 경고 출력) Python helper 권장: ```python import os, matplotlib.font_manager as fm def get_korean_font(): candidates = [ "/mnt/c/Windows/Fonts/malgun.ttf", # WSL "C:/Windows/Fonts/malgun.ttf", # Windows native ] for path in candidates: if os.path.exists(path): return fm.FontProperties(fname=path).get_name() for name in ["Apple SD Gothic Neo", "AppleGothic", # macOS "NanumGothic", "Nanum Gothic", # Linux "Malgun Gothic"]: # Windows installed try: fm.findfont(name, fallback_to_default=False) return name except Exception: continue return "DejaVu Sans" # last resort plt.rcParams["font.family"] = get_korean_font() plt.rcParams["axes.unicode_minus"] = False ``` - DPI: 150 (보고서용 고해상도) - 색상: 문제 시점은 빨강, 정상은 파랑, 목표선은 점선 - 차트 제목 = 인사이트 (예: "2월 영업이익 79% 감소") - `charts/` 폴더에 PNG로 저장 분석 내용에 따라 차트 종류와 수를 LLM이 판단하여 조정. --- ## Phase 4: REPORT (PPT 보고서) **Type**: script + prompt ### Step 4-1: 슬라이드 구성 확인 **GATE 3**: PPT 생성 전 슬라이드 구성을 사용자에게 제시. ``` 보고서 슬라이드 구성: 1. 표지 2. Executive Summary (3카드 요약) 3. KPI 대시보드 4. 위기 타임라인 5. 부문별 비교 6. 비용 구조 분석 7. 이익 변동 분석 8. 회복 추적 9. 시사점 및 조치 사항 추가/수정할 내용이 있으신가요? ``` ### Step 4-2: PPT 생성 python-pptx로 슬라이드 조립: - 와이드스크린 16:9 (13.333" x 7.5") - 표지: 제목 + 소속 + 기준일 (`CLAUDE.md` 담당자 정보 참조) - 차트 슬라이드: 이미지 삽입 + 하단 인사이트 박스 - 시사점 슬라이드: 단기/중기/확인필요 3분할 레이아웃 - 모든 수치에 출처 명시 - 크로스체크 포인트가 있으면 별도 표시 ### Step 4-3: 저장 및 보고 ``` reports/YYYY-MM-DD_{주제}_분석보고서.pptx ``` 최종 산출물 목록을 사용자에게 보고: - PPT 보고서 (핵심) - 클린 엑셀 파일 (_clean.xlsx) - 차트 이미지 (charts/) - 크로스체크 포인트 목록 --- ## Edge Cases | 상황 | 대응 | |------|------| | 파일이 1개뿐 | 크로스파일 분석 건너뛰고, 단일 파일 심층 분석으로 전환 | | 파일이 10개 초과 | "파일이 많습니다. 핵심 파일 5~7개를 선택해주세요" 안내 | | 컬럼명이 파일마다 다름 | 오딧 단계에서 스키마 비교표 제시 후 사용자에게 매핑 확인 | | 기간이 파일마다 다름 | 날짜 범위 불일치 경고 + 공통 기간만 분석할지 사용자 선택 | | 데이터가 비어있음 | 해당 파일 제외하고 진행할지 사용자 확인 | | 차트 생성 실패 (폰트 등) | 기본 폰트로 fallback, 경고만 표시하고 계속 진행 | --- ## 금지 사항 - 원본 파일 수정 금지 (항상 _clean.xlsx로 별도 저장) - 데이터에 없는 수치를 생성(할루시네이션)하지 않는다 - 상관관계를 인과관계로 단정하지 않는다 (가설로 제시) - 예측/예보 수치를 제시하지 않는다 (과거 데이터 분석만) - 사용자 승인 없이 PPT를 저장하지 않는다 --- ## Integration Points - `references/기준값.md`: 정상/주의/경고 판단 기준으로 참조 - `references/보고서양식.md`: PPT 양식이 있으면 해당 양식 준수 - `CLAUDE.md` 담당자 정보: 표지 소속/이름에 반영 - `audit-xls` 스킬: Phase 1 오딧 로직의 기반 - `clean-data-xls` 스킬: Phase 1 클리닝 로직의 기반 - `data-analyst` 스킬: 단일 파일 분석은 data-analyst로 라우팅 - `cross-check` 스킬: 크로스체크 포인트 검증에 활용 가능
Voir sur GitHub