我试图让我们的库存电子表格上的数字自动更新(因为我们似乎忘记自己这样做了)......但我似乎无法做到完全正确。
所以我们的库存流程有三个步骤:
- 收到原始产品 (+B17)
- 将原料产品送去灭菌(-B17,+B10)
- 销售无菌产品(-B10)
我花了很长时间才找到 B17 的这个公式......
=0-B10+0
现在,当我将 B10 添加到它时,它会自动从 B17 中减去,并且最终没有循环引用,但是现在当我最终必须出售无菌产品并从 B10 中减去时,我该如何防止 B17 发生变化?
我还需要知道当我们最终再次订购更多原材料时如何添加 B17。
答案1
答案2
我认为您生成循环公式的原因是 Excel 不能很好地完成您要做的事情(至少在没有一些技巧的情况下)。固有的问题是您正在尝试使用“单元格历史记录”,而 Excel 不会保留单个单元格的历史值。您不能这样做新电池值 = 旧电池值(来自同一电池)+ 新原料。一个单元格只有一个当前值。您需要更多单元格来存储历史信息 - 这就是为什么@Rajesh 的示例就像一本日志簿 - 每一行都是一个新的交易,可以像这样计算:现有库存 = 旧库存(上一行)+ 新原料库存。
例如:假设 A1 是新的原料库存,当前值为 0(此单元格中没有公式),A2 是当前库存,值为 100(此单元格中没有公式),A3 是新库存,公式为 =A1 + A2,结果为 100。现在您在 A1 中输入数字 10 并按回车键。A3 将返回 110。第二天您想添加 20 份原料库存。您在 A1 中输入 20,但 A3 只有 120,而不是 130。问题是 A2 尚未从 100 更新为 110。不幸的是,没有公式可以输入到 A2 中以根据其过去的值更新自身。A2 不能是“=A2 + A1”,也不能是“=A3 + A1”,因为 A3 已经依赖于 A2,否则需要过去的值。
以下是诡计您需要一个宏或一些 VBA 代码来在电子表格上编写一个“添加”按钮,该按钮将从 A3(110)获取结果并将其值复制到 A2(覆盖 100),同时将 A1 清零 - 为下一次交易做好准备。
做到这一点并不难,但需要一点编程技能。或者使用@Rasjesh 的解决方案 :)