🚀 第34天:用多维表格“手搓”一个简易ERP(库存模块·现存量计算篇)
✨ 系列第34篇|从零开始搭建标准ERP架构
👣 接续第33天“出库多次发料”,今天我们正式进入仓库的核心模块——库存管理
🔧 目标:实现“入库 – 出库 = 现存量”的自动化计算
🎯 关键点:统计字段 + 公式字段 + 多表联动 + 动态编码生成
🔁 回顾:我们已经实现了什么?
在前几期中,我们逐步构建了:
BOM模块 → 定义产品结构
销售→计划→采购 → 业务流程闭环
入库模块 → 采购收货自动登记
出库模块 → 生产领料分批出库
现在,所有物料的流动都已记录在案,是时候把它们统一起来——
👉 建立一个实时更新的“库存总表”
💡 核心公式:入库-出库 = 库存
我们将通过 多维表格的统计+公式能力,实现这一目标。
✅ 步骤一:创建库存子模块 —— 5.3 库存
💡 设计思路:
将库存独立为一个子模块,便于后续扩展(如库位管理、批次追踪、保质期等)
✅ 操作路径:
在【5.仓库模块】下新建文件夹:5.3 库存
新建数据表:现存量明细表
📌 命名规范:
现存量明细表:存储每种物料的当前库存状态
后续可扩展为“库存台账”或“物料主档”

✅ 步骤二:配置“现存量明细表”字段
1️⃣ 编号字段(预设1000行)
✅ 为什么预设?
多维表格不支持动态数组函数(如Excel的SPILL)
使用 INDEX(UNIQUE(...), [@编号]) 可以“强制”返回第1、2、3…个物料编码
预设足够数量,避免后期频繁扩容
📌 提示:未来可改为“自动生成唯一ID”或引入“物料主数据表”
2️⃣ 公式字段:物料编码

✅ 解读:
UNIQUE(入库明细表![物料编码]):提取所有唯一的物料编码
INDEX(..., [@编号]):根据当前行的编号,取第N个编码
IFERROR(...,""):防止越界报错,返回空值
✅ 效果:
自动生成物料列表,无需手动输入
支持未来新增物料自动加载
3️⃣ 统计字段:入库
✅ 效果:
自动汇总该物料的所有入库数量
支持跨多个采购单累计

4️⃣ 统计字段:出库
✅ 效果:
自动汇总该物料的所有出库数量
支持多次领料累加

5️⃣ 公式字段:现存量

✅ 效果:
实时计算当前库存余额
若为负数?表示超发 → 可设置预警规则
✅ 步骤三:创建视图 —— “现存量”(只显示有货的)
✅ 操作路径:
进入【现存量明细表】
创建新视图:现存量
设置筛选条件:
现存量 > 0
✅ 效果:
只展示有库存的物料
方便仓管员快速查看可用资源
可导出作为“库存清单”或“盘点表”
📌 提示:可进一步添加“按库位分组”、“按类别筛选”等功能

🧩 最终效果演示

✅ 结果:
所有物料库存自动计算
实时反映实际可用数量
支持后续“库存预警”、“缺料提醒”功能
🌐 设计总结:如何做到“自动同步”?
| 功能 | 实现方式 | 价值 |
| 物料自动加载 | INDEX + UNIQUE + IFERROR | 无需手动维护物料列表 |
| 入库汇总 | 统计字段关联入库明细表 | 自动累计所有采购收货 |
| 出库汇总 | 统计字段关联出库明细表 | 支持分批领料累加 |
| 现存量计算 | 公式字段 入库 - 出库 | 实时更新库存余额 |
| 视图过滤 | 筛选 现存量 > 0 | 快速查看可用库存 |
✅ 核心思想:
让数据自己说话,而不是人工计算
🔮 下一篇预告:第35篇来了!
如何计算“库龄”?
如何根据每次入库日期,自动算出物料存放时间?
如何设置“超期预警”?
如何实现“先进先出”(FIFO)策略?
我们将继续深化库存管理能力,打造真正的 智能仓储系统。
