Back to skills
extension
Category: Data & AnalyticsNo API key required

医院药品季度盘点分析

医院药品季度盘点分析全流程技能。读取原始盘点 .xls(含帐存数量、实存库房/药房数量、盘前/盘后进价等字段),依次完成「数据清洗 → 实盘数量计算 → 差异分析(盘盈/盘亏/相符表+准确率)→ 负数实盘记录隔离 → 进销存汇总数据填入盘点模板」五个阶段,产出可直接用于季度盘点报告的 Excel 文件。当药师/药剂科用户提出「药品盘点」「季度盘点报告」「实盘数量」「盘盈盘亏」「帐存实存差异」「进销存填表」等需求时触发。

personAuthor: user_767538ffhubcommunity

医院药品季度盘点分析

用途

将三级医院药剂科每个季度的原始药品盘点 Excel,自动处理为可用于《药品盘点分析报告》的结构化结果:清洗无效行、计算实盘数量、做账实差异分析、隔离异常负数记录、并把进销存汇总数填入盘点模板。

何时使用

  • 用户给出类似「对药品盘点表做清洗/算实盘数量/做差异分析/填盘点数据表」。
  • 关键词命中:药品盘点、季度盘点、帐存、实盘、盘盈、盘亏、相符率、进销存、盘点数据表。
  • 输入通常是 .xls(原始盘点)+ 可选的 进销存数据.xlsx + 盘点数据.xlsx(模板)。

环境与依赖

  • 用 managed python:C:/Users/Yen/.workbuddy/binaries/python/versions/3.13.12/python.exe
  • 依赖:xlrd(读 .xls,需 formatting_info=True)、openpyxl(读写 .xlsx)。如缺失,在该 managed python 的 venv 内 pip install xlrd openpyxl
  • 读取顺序.xls 用 xlrd;.xlsx 用 openpyxl。

工作流程(五阶段)

按以下顺序执行;每个阶段产出独立新文件,绝不覆盖用户的原始文件(遵循用户一贯的"生成新文件"要求)。

  1. 清洗pipeline.py clean):删除三项数量(帐存/库房/药房)全为显式 0 的行;价格差异 |盘前−盘后| > THRESHOLD(默认 0.01)整行标红。保留标题合并、表头、全部列,新增「序号」列。
  2. 实盘数量shipan):按 references/schema_and_rules.md §3 的优先级 A→D 计算 实盘数量 = 实存库房数量 × P + 实存药房数量。插入到「帐存数量」之后。
  3. 差异分析diff):差异数量=实盘−帐存;差异金额=差异数量×盘后进价;拆盘盈(>0 降序)、盘亏(<0 升序)、相符(=0);准确率=相符/总。
  4. 负数隔离negative):实盘数量<0 的行单独导出,并从差异分析中剔除后重算。
  5. 进销存填表fill):把进销存各项售价金额汇总 + 盘点最终数据,按字段映射填入竖向模板。

如何运行

脚本 scripts/pipeline.py 支持分阶段与全流程:

python pipeline.py clean   <原始盘点.xls> <清洗后.xlsx> [阈值]
python pipeline.py shipan  <清洗后.xlsx>   <实盘数量.xlsx>
python pipeline.py diff    <实盘数量.xlsx>  <差异分析.xlsx>
python pipeline.py negative <实盘数量.xlsx> <负数记录.xlsx> <差异分析.xlsx>
python pipeline.py fill    <实盘数量.xlsx> <进销存.xlsx> <模板.xlsx> <已填.xlsx>
python pipeline.py all     <原始盘点.xls> <进销存.xlsx> <模板.xlsx> <输出目录> [阈值]

执行前先确认列名references/schema_and_rules.md §1 一致(用脚本读取 header 行);若用户表头不同,调整 pipeline.py 顶部常量或 COL 列表。

关键规则与陷阱(务必遵守)

  • 删除全零行只认显式数值 0;空/非数值保留,避免误删真实缺失记录。
  • 实盘数量优先级:特殊药品系数 → 单位一致取非零方 → 规格提取包装数 → 默认每盒10。规格提取单位集合必须含 瓶|揿|喷|吸|泡 等,且不要把 ml/g 当包装数(落到默认10)。
  • 差异金额乘子用盘后进价;保留到分。
  • 负数实盘记录(源数据异常)必须隔离、不计入准确率,并向用户提示核对原始单据。
  • 售价 vs 进价口径不一致:进销存各项是售价金额,账面/实盘总额是进价估算——向用户说明此口径差异。
  • 差异率可能很大(如 188%)并非错误,多由少数高价盘盈药品造成,提示优先复核。
  • 进销存表为多层分组表头,定位列用拼接第6~8行文本按关键词匹配;用「合计」行交叉校验求和。

输出文件清单(全流程)

  • 2026Q2盘点_清洗后.xlsx
  • 2026Q2盘点_实盘数量.xlsx
  • 2026Q2盘点_负数实盘记录.xlsx
  • 2026Q2盘点_差异分析.xlsx(含 盘点差异总表/盘盈表/盘亏表/相符表/盘点汇总)
  • 盘点数据_已填.xlsx

参考

详细列结构、系数表、正则、已验证示例与数据质量提示见 references/schema_and_rules.md