返回 Skill 列表
extension
分类: 数据与分析无需 API Key

数据合并与多维分析

description: >- 多源Excel数据合并与多维分析。合并多个区域/月份的Excel文件(模糊匹配列名),自动清洗(去重/补全/标准化), 按产品×地区×月份三维度交叉分析,生成柱状图+折线趋势图+环形图,输出含5 Sheet的Excel报告及PDF。 支持快消/零售和制造业双模式。触发词:合并数据、多文件合并、数据分析、销售分析、多维分析、 经营分析、合并Excel、数据合并、merge Excel、cross analysis。 description_zh: >- 多源Excel数据合并与多维分析。合并多个区域/月份的Excel文件(模糊匹配列名),自动清洗(去重/补全/标准化), 按产品×地区×月份三维度交叉分析,生成柱状图+折线趋势图+环形图,输出含5 Sheet的Excel报告及PDF。 支持快消/零售和制造业双模式。触发词:合并数据、多文件合并、数据分析、销售分析、多维分析、 经营分析、合并Excel、数据合并、merge Excel、cross analysis。

person作者: user_58fad8c3hubcommunity

多源数据合并与多维分析 · Multi-Source Data Merge & Analysis

填补现有数据分析技能链的最大缺口:多文件合并 → 清洗 → 多维分析 → 图表 → Excel/PDF报告,端到端一站式。

When to Use

当用户需要以下任一操作时加载本技能:

  • 合并多个Excel文件(不同Sheet/列名不一致/格式差异)
  • 对合并后的数据进行多维交叉分析(产品 × 地区 × 月份)
  • 生成含图表的Excel分析报告
  • 输出可直接插入经营分析PPT的PDF报告

触发词: 合并数据, 多文件合并, 数据分析, 销售分析, 多维分析, 经营分析, 合并Excel, 数据合并, merge Excel, cross analysis, multi-source

核心能力

| 步骤 | 能力 | 说明 | |------|------|------| | ① 合并 | 多文件/多Sheet Excel合并 | 模糊列名匹配(fuzzywuzzy ≥80%),自动跳过临时文件(~$) | | ② 清洗 | 数据质量提升 | 去重(关键字段组合)、缺失值(数值中位数/分类"未知")、日期标准化(YYYY-MM-DD) | | ③ 分析 | 多维交叉透视 | 产品×地区×月份三维度,环比/同比自动计算 | | ④ 图表 | 3张专业图表 | 柱状图(区域对比) + 折线趋势图(月度+均值线) + 环形图(产品占比) | | ⑤ 报告 | 5 Sheet Excel + PDF | Sheet1-合并数据 / Sheet2-汇总指标卡 / Sheet3-多维透视表 / Sheet4-图表 / Sheet5-分析结论 |

行业双模

| 模式 | 参数 | 核心KPI | |------|------|--------| | 快消/零售 | --industry retail | 销售额(万元)、环比增长%、同比增长%、毛利率%、退货率% | | 制造业 | --industry manufacturing | 产量(件)、良率%、OEE%、停机率%、报废率% |

详见 references/industry-configs.md

制造业 KPI 自动推算公式

制造业模式下,以下 KPI 由原始字段自动推算(无需在源数据中预先计算):

| KPI | 公式 | 所需源字段 | 兜底策略 | |-----|------|-----------|---------| | 良率% | 合格数 ÷ 投料量 × 100 | 合格数 + 投料量 | 无合格数时:(产量 - 废品数) ÷ 投料量 | | 报废率% | 废品数 ÷ 投料量 × 100 | 废品数 + 投料量 | — | | 停机率% | 停机时长 ÷ 计划生产时间 × 100 | 停机时长 + 计划生产时间 | 无计划时间时跳过 | | OEE% | 可用率 × 质量率 × 100 | 计划生产时间 + 停机时长 + 合格数/产量 | 可用率 = (计划时间 - 停机) ÷ 计划时间;质量率 = 合格数 ÷ 产量 |

决策速查表(与现有技能的协作边界)

| 用户需求 | 路由 | |----------|------| | 多文件合并 + 多维分析 → Excel/PDF报告 | 本技能 | | 单文件深度统计分析(描述/对比/趋势/异常) | data-analyst-pro | | 数据质量诊断(6项结构化检查) | data-prep | | 格式转换/编码修复/批量处理 | data-clean-transform | | 月度经营分析会(固定模板+三层指标体系) | business-operations-analysis | | 单文件自动化财务/业务分析 | auto-data-analysis-claw |

执行流程

⚠️ 前置要求

  1. 确认用户提供了Excel文件夹路径(含≥1个 .xlsx.xls 文件)
  2. 确认用户指定了行业模式(retail/manufacturing)或根据数据特征自动判断
  3. ⚠️ 安装依赖:pip install -r scripts/requirements.txt

Step 1: 定位文件夹 + 安装依赖

ls "{用户提供的文件夹路径}"/*.xlsx
pip install pandas openpyxl matplotlib numpy fuzzywuzzy python-Levenshtein

Step 2: 执行分析

python scripts/merge_and_analyze.py \
  --folder "{文件夹路径}" \
  --industry {retail|manufacturing} \
  --output "{输出路径}/分析报告.xlsx"

如需PDF:

python scripts/merge_and_analyze.py \
  --folder "{文件夹路径}" \
  --industry retail \
  --output "{输出路径}/分析报告.xlsx" \
  --pdf

Step 3: 交付结果

使用 deliver_attachments 交付Excel报告和图表。

输出文件结构

输出目录/
├── 分析报告.xlsx          ← 5 Sheet Excel报告
├── 分析报告.pdf           ← (可选) PDF报告
└── charts/
    ├── chart_bar_region.png     ← 区域对比柱状图
    ├── chart_line_monthly.png   ← 月度趋势折线图
    └── chart_donut_product.png  ← 产品占比环形图

Excel 5 Sheet 说明

| Sheet | 内容 | 格式 | |-------|------|------| | 合并数据 | 全量清洗后的合并数据,含"数据来源"标注列 | 冻结表头、自动筛选、斑马纹 | | 汇总指标卡 | 总销售额、环比、同比、区域数、产品数、毛利率、退货率 | 两列(指标名/值) | | 多维透视表 | 产品×地区×月份交叉透视矩阵 | 冻结行/列标题 | | 图表 | 嵌入3张PNG图表(柱状+折线+环形) | openpyxl嵌入式图片 | | 分析结论 | 3-5条洞察 + 行动建议 | 序号+内容,自动换行 |

错误处理与兜底策略

| 错误场景 | 处理方式 | |----------|----------| | 文件夹不存在 | 提示用户确认路径,不继续执行 | | 文件夹无Excel文件 | 提示"未发现Excel文件",检查隐藏文件和临时文件 | | 输出与输入同目录 | 自动跳过输出文件自身 + 含"分析报告/report"关键词的文件,防止自吞 | | 所有列名未匹配 | 打印警告并跳过该Sheet,不阻塞合并 | | 无分析维度列(区域/产品/月份) | 跳过透视分析,输出合并数据和基本统计 | | 图表生成失败(如无区域列) | 跳过该图表,继续生成其他图表 | | PDF生成失败(fpdf2未安装) | 只交付Excel,提示 pip install fpdf2 Pillow | | fuzzywuzzy未安装 | 降级为精确匹配列名 | | 内存不足(大量文件) | 分批处理,每批最多10个文件 |

References 索引

| 文件 | 内容 | 何时加载 | |------|------|----------| | references/industry-configs.md | 快消/零售 + 制造业KPI定义与公式 | 需要了解指标体系或扩展新行业时 | | references/column-mapping.md | 模糊列名匹配词典(中英文同义词) | 需要扩展列名识别规则时 |

依赖声明

pandas>=2.0       # 数据处理与合并
openpyxl>=3.1     # Excel读写
matplotlib>=3.8   # 图表生成
numpy>=1.24       # 数值计算
fuzzywuzzy>=0.18  # 列名模糊匹配
python-Levenshtein>=0.25  # fuzzywuzzy加速
fpdf2>=2.8        # PDF生成(纯Python)
Pillow>=9.0       # 图片处理

安装命令:

pip install pandas openpyxl matplotlib numpy fuzzywuzzy python-Levenshtein fpdf2 Pillow

输入案例

案例1:快消/零售 — 多区域月度销售合并分析

输入示例

我有6个Excel文件放在 D:\公司\月度销售数据\,分别是华东、华南、华北、华中、西南、西北各区域1-6月销售数据。每个文件的Sheet名不一样,有的叫"销售明细",有的叫"Sheet1",列名也略有差异(有的写"产品",有的写"产品名称")。帮我合并这些数据,按产品×区域×月份做交叉分析,生成带图表的Excel报告和PDF。

输出示例

处理过程:

  1. python scripts/merge_and_analyze.py --folder "D:\公司\月度销售数据" --industry retail --top-n 8 --output "D:\公司\月度销售数据\销售分析报告.xlsx" --pdf
  2. 合并6个文件共14个Sheet,模糊匹配列名("产品"→"产品名称"、"收入"→"销售额"),合并后共1,248行
  3. 清洗去重12行,缺失值补全23处(中位数),日期统一为YYYY-MM
  4. 三维透视分析:6个产品 × 6个区域 × 6个月矩阵
  5. 生成3张图表 + 5条洞察

输出文件:

  • D:\公司\月度销售数据\销售分析报告.xlsx(5 Sheet,含图片)
  • D:\公司\月度销售数据\销售分析报告.pdf
  • D:\公司\月度销售数据\charts\(3张PNG图表)

核心结论:

  • 华东贡献最高(42%销售额),华南环比增长最快(+15.3%)
  • 产品A占总量31%,但毛利率仅22%(低于均值28%),建议优化定价或成本结构
  • 6月退货率突增至4.8%,根因在华东区产品B品质批次问题

案例2:制造业 — 多工厂产量与良率分析

输入示例

3个工厂(一厂、二厂、三厂)的月度生产数据在 C:\工厂数据\2026\,每个工厂一个Excel文件,内含产量、良率、停机时长等。帮我合并分析,输出各工厂产量对比和月度良率趋势。

输出示例

处理过程:

  1. python scripts/merge_and_analyze.py --folder "C:\工厂数据\2026" --industry manufacturing --output "C:\工厂数据\2026\生产分析报告.xlsx"
  2. 合并3个文件共3个Sheet,匹配"产出"→"产量"、"合格率"→"良率"
  3. 三维透视分析:15个产品型号 × 3个工厂 × 6个月
  4. 生成3张图表(工厂产量对比柱状图、月度良率趋势折线图、产品产量占比环形图)

输出文件:

  • C:\工厂数据\2026\生产分析报告.xlsx(5 Sheet)
  • C:\工厂数据\2026\charts\(3张PNG图表)

核心结论:

  • 二厂整体良率最高(97.3%),一厂最低(94.1%),差距3.2个百分点
  • 3月全厂良率骤降至91.5%(一厂设备大修),影响持续至4月
  • 产品X报废率最高(8.7%),建议重点排查该产品工艺流程

版本: 1.0.4 类型: Workflow(工作流型) 目标用户: 商业数据分析师、运营管理人员、工厂生产主管 v1.0.4 新增: 用 fpdf2 纯Python生成PDF(替换外部markitdown调用),PDF含封面+KPI卡片+3张嵌入图表+洞察+数据来源脚注,零外部依赖 v1.0.3 新增: --top-n 参数——环形图产品分组数可配置(默认6),200+型号工厂可设 --top-n 20 v1.0.2 新增: 制造业KPI自动推算——良率%、报废率%、停机率%、OEE% 按标准公式从原始字段自动计算,含三级兜底 v1.0.1 修复: 输出与输入同目录时跳过输出文件自身,防止"自吞"上次生成的报告