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

用友BIP&ys的报表分析工具

用友BIP / YonSuite(YS)管理报表数据分析技能。针对从用友系统导出的管理报表(科目余额表、辅助余额表、预算执行表、利润表/管理报表、合并报表等 Excel/CSV),执行数据清洗、结构化解析、同比/环比/趋势分析、预算执行率与差异分析、结构占比分析、异常余额与超预算预警,并产出 Markdown/HTML 分析报告与图表。当用户提到"用友报表分析""BIP导出""YS管理报表""科目余额表分析""预算执行分析""药企管理报表"或给出用友导出的 Excel/CSV 要求做分析、可视化、异常预警时使用。

person作者: user_a16b2e76hubcommunity

用友BIP / YonSuite 管理报表分析

适用范围

  • 输入:用友 BIP / YonSuite(YS)导出的管理类报表,常见格式为 .xlsx / .xls / .csv。也兼容 U8/U9 cloud 导出的同结构报表。
  • 核心能力
    1. 识别报表类型(科目余额表 / 辅助余额表 / 预算执行表 / 利润表·管理报表 / 合并报表 / 通用明细表)。
    2. 数据清洗(表头定位、合并单元格拆分、金额列数值化、借贷方向归一、空行/合计行处理)。
    3. 多维分析:同比(YoY)、环比(MoM)、趋势、结构占比、预算执行率与差异。
    4. 异常检测:借贷不平、负余额异常、超预算、同比剧烈波动(z-score / 阈值)。
    5. 产出:Markdown 报告 + 图表 PNG(亦可转 HTML),按"分析结论优先"结构呈现。
  • 典型场景:药企(GxP 合规要求)的管理报表月度/季度分析、销售费用与研发费用拆解、各产品线毛利、预算执行监控、合并报表核对。

工作流

流程遵循:读取 memory → 执行任务 → 交付附件 → 撰写摘要。本技能聚焦"执行任务"阶段。

Step 1 · 接收与识别

  • 接收用户上传/指定的报表文件(路径或附件)。
  • scripts/yonyou_report_analyze.py--type auto 自动识别报表类型;识别依据见 references/report_schemas.md
  • 若自动识别不准,让用户用 --type 指定(balance / aux / budget / pl / consolidation / generic)。

Step 2 · 清洗与解析

  • 脚本自动完成:跳过多余表头行、拆分合并单元格、将"借方/贷方"两列归一到带符号的"净额"列、把"元"单位文本转 float、剔除"合计/小计"行(保留为校验用)。
  • 科目编码按层级(如 6001.01)保留,便于按上级科目聚合。
  • 详细列映射与口径见 references/report_schemas.md

Step 3 · 选择分析模板

按报表类型套用 references/analysis_methods.md 中的方法:

  • 科目余额表:借贷平衡校验 → 期末 vs 期初变动 → 异常余额(负资产/负负债、零变动大额)。
  • 辅助余额表:按辅助维度(部门/客户/供应商/项目/产品)拆解 → 结构占比 → Top N。
  • 预算执行表:执行率 = 实际/预算 → 差异 → 超预算阈值预警(默认 >100% 标红,可配)。
  • 利润表/管理报表:同比/环比 → 趋势 → 毛利率等派生指标。
  • 合并报表:内部往来抵销校验 → 层层级联汇总核对。
  • 通用明细:用户指定维度列 + 数值列后做透视、趋势、异常。

Step 4 · 异常与预警

  • 内置规则(可在脚本 --rules 覆盖):
    • 借贷不平衡(差额 > 0.01 元)
    • 超预算(执行率 > 阈值,默认 1.0)
    • 同比波动 |Δ%| > 阈值(默认 50%)且基数 > 最小金额
    • z-score > 3 的离群金额
  • 产出"预警清单"表格,每条含:对象、指标、数值、阈值、建议动作。

Step 5 · 产出报告

  • 脚本生成 analysis.md(结论先行:摘要 → 关键指标 → 预警 → 明细)与 charts/*.png
  • present_files 交付 .md 与图表;如需 PPT,再调用图表+摘要转制。
  • 报告语言与用户偏好一致(默认中文;药企合规材料可切英文)。

调用脚本

PY="C:/Users/HP/.workbuddy/binaries/python/envs/yonyou/Scripts/python.exe"
$PY "C:/Users/HP/.workbuddy/skills/yonyou-report-analysis/scripts/yonyou_report_analyze.py" \
  --input "<报表路径>" \
  --type auto \
  --out "<输出目录>" \
  --budget-threshold 1.0 \
  --yoy-threshold 0.5

参数说明见脚本 --help。无样本数据时可用 sample_data/ 下的合成样例自测。

反模式与常见问题 FAQ(排错)

本节解决"识别错了 / 图表乱码 / 数字变空 / 跑不起来"等实际报错,遇到问题时先来这里查。

反模式(不要这样做)

  1. 丢文件不说明类型,指望 auto 100% 正确:用友 BIP/YonSuite/U8/U9 导出格式千差万别,auto 失败时用 --type 显式指定。
  2. 忽略 processing_log.txt 直接信报告:先核对日志里的"表头定位行 / 排除行数 / 单位归一",确认读对表再下结论。
  3. 把未审、未抵销的导出当合规证据:必须在报告中标注"未经审计 / 未含抵销明细",药企 GxP 场景尤甚。
  4. 多 sheet 工作簿不指定 --sheet:默认只读第 0 个 sheet,合并报表/带抵销分录的表要显式指定。
  5. 阈值拍脑袋:超预算阈值默认 1.0,但季度/年度进度不同(6 月应≈50%),要结合时间进度判断是否"透支",而非机械看 >100%。
  6. analysis.md 当唯一真相:报告是分析辅助,异常项需回到企业端系统二次确认(凭证状态、在途数据)。

FAQ(常见问题与解答)

Q1 · 报表被识别成错误类型(如利润表被当辅助余额表、辅助表被当 generic)? A:加 --type pl|aux|budget|balance|consolidation|generic 显式指定;或检查表头是否含 references/report_schemas.md 里的标准关键词(如"本期金额""营业收入""辅助核算")。"项目"列既是利润表行也是辅助维度,脚本已把利润表识别优先级放在辅助表之前。

Q2 · 图表里中文是方框/乱码? A:环境无 CJK 字体时 matplotlib 会退化显示方框。这**不影响 analysis.md(主交付物)**的表格与结论。要修复:确保系统存在中文字体(如 C:/Windows/Fonts/msyh.ttc),脚本已自动尝试注册微软雅黑;无该字体时图表仅作占位,以 MD 为准。

Q3 · 金额变成空(NaN)或报错? A:金额列混入非常规字符(全角括号、全角逗号、单元格内"元/万元"后缀)。脚本已处理半角逗号、括号负数 (123)-123、"—/空"→NaN。若仍有 NaN,查 processing_log.txt 对应行,或导出时选"纯数值"格式。

Q4 · 单位错了(万元被当元,数值放大 10000 倍)? A:脚本按表头/页脚"单位:万元/千元"自动归一(万元×10000、千元×1000)。若导出无该标注,需先在导出端统一单位,或人工核对报告顶部"单位"字段是否与实际一致。

Q5 · 运行报 ModuleNotFoundError: No module named 'pandas' A:依赖未装。在 venv 内执行:

C:/Users/HP/.workbuddy/binaries/python/envs/yonyou/Scripts/pip.exe install pandas openpyxl matplotlib

Q6 · 超预算预警太多/太少? A:调 --budget-threshold(如 0.9 提前预警、1.1 仅看明显超支);并结合期间进度判断是否为"预算透支"而非单纯超支。

Q7 · 借贷不平衡被大量误报? A:用友导出可能含未记账凭证、在途数据,或"合计/小计"行混入。脚本已剔除"合计/小计"行、容差 0.01 元。若仍大量不平,先在企业端确认凭证状态,必要时仅分析末级科目(无下级编码)。

Q8 · 多 sheet 工作簿只分析了第一个? A:默认读 sheet 0。指定 --sheet "科目余额表" 或索引号,例如 --sheet 2

Q9 · 合并报表内部抵销校验不准? A:纯导出数据无法完整校验。需有"抵销分录"sheet 且脚本能读取;否则报告中标注"未含抵销明细,不可作合规证据"。

Q10 · 真实导出的列名和文档不一样,识别不到? A:脚本用别名映射(见 report_schemas.md),常见别名已覆盖。非常规列名请用 --dim 部门名 --value 金额列 显式指定,或先把列名改成标准名(如"科目编码""期末借方")。

Q11 · CSV 读不到/乱码? A:编码问题。导出时选 UTF-8 或 GBK;若已乱码,先用编辑器转码为 UTF-8 再跑。

Q12 · 输出文件在哪? A:<out>/analysis.md(主报告)+ <out>/charts/*.png + <out>/processing_log.txt。默认 <out> = <input>_out

注意事项

  • 用友导出常含"单位:元/万元"混用,脚本以表头"单位"标注为准,缺省按"元"。
  • 合并报表涉及内部抵销,纯导出数据无法完全校验,需在报告中标注"未经审计/未含抵销明细"。
  • 药企 GxP 场景:报表若用于合规论证,须保留原始导出文件与处理日志(脚本会输出 processing_log.txt)。