如何实现取消/退货Sales Order不触发Inventory Table库存扣减?
实现按销售状态自动计算库存扣减的正确方法
直接使用SUMIFS函数就能解决你的问题,不需要额外添加辅助列,这是电子表格场景下处理多条件求和的标准方案。
公式示例(以Excel/Google Sheets为例)
假设你的表结构如下:
- Inventory Table:A列是产品名称,B列是初始库存,C列用来显示当前库存
- Sales Table:D列是产品名称,E列是销量,F列是交易状态(值为“正常”“取消”“退货”等)
在Inventory Table的C2单元格(对应第一行产品的当前库存)输入公式:
=B2 - SUMIFS(Sales!E:E, Sales!D:D, A2, Sales!F:F, "<>取消", Sales!F:F, "<>退货")
下拉填充公式到所有产品行即可。
逻辑说明
SUMIFS是多条件求和函数,这里同时满足三个条件:- Sales Table中D列的产品名称和当前库存行的产品名称(A2)匹配
- Sales Table中F列的状态不等于“取消”
- Sales Table中F列的状态不等于“退货”
- 只有符合条件的销量会被汇总,用初始库存减去这个汇总值,就是排除取消/退货订单后的实际库存。当你修改Sales Table中某笔订单的状态为“取消”或“退货”时,公式会自动更新汇总结果,相当于反向恢复库存,无需手动录入其他表。
注意事项
- 确保状态列的文本完全一致,比如“取消”“退货”不要出现大小写差异、多余空格,否则会导致条件匹配失败
- 如果你的初始库存和当前库存是同一列(直接在原库存列更新),可以调整公式为初始库存值减去SUMIFS结果,或者把初始库存单独存到另一列更便于追溯
内容的提问来源于stack exchange,提问作者Noob
相关产品推荐
相关产品推荐

