一、使用SUMIF函数按产品编号汇总计算 如果你的出入库记录都在同一张表里,这个方法最直接。它通过产品编号这个“身份证”,分别把入库和出库的数量加起来,再做个减法,实时余量就出来了。公式一次写好,后续数据更新会自动计算,不用手动刷新。 操作起来很简单:在余量列的第一个单元格(比如F2),输入这个公式
如果你的出入库记录都在同一张表里,这个方法最直接。它通过产品编号这个“身份证”,分别把入库和出库的数量加起来,再做个减法,实时余量就出来了。公式一次写好,后续数据更新会自动计算,不用手动刷新。
操作起来很简单:在余量列的第一个单元格(比如F2),输入这个公式:=SUMIF($B$2:$B$1000,B2,$D$2:$D$1000)-SUMIF($B$2:$B$1000,B2,$E$2:$E$1000)。
长期稳定更新的攒劲资源: >>>点此立即查看<<<
这里有几个关键点:确保B列是产品编号,D列是入库数,E列是出库数。特别注意,公式里$B$2:$B$1000这样的绝对引用符号($)不能少,它锁定了查找范围,否则下拉填充公式时,范围会跟着跑偏。
公式输入后,直接拖动填充柄覆盖所有数据行即可。不过要注意,如果后续新增的数据行超过了原先设定的1000行,记得回来把公式里的行号上限(比如1000)改大,否则新数据不会被计入。

老是手动改行号太麻烦?那可以试试这个更“聪明”的方法。它利用FILTER函数自动筛选整列的非空数据,彻底告别硬编码的行数限制,特别适合数据不断增长的场景。
在余量列首单元格(如F2)输入:=SUM(FILTER(D:D,(B:B=B2)*(D:D<>"")))-SUM(FILTER(E:E,(B:B=B2)*(E:E<>"")))。
按下回车后,系统会自动计算。但这里有个前提,这个公式需要千问表格v2.8.0或以上版本的支持,因为它们具备动态数组功能。
如果结果报错(比如显示#VALUE!),先别慌。这通常意味着,当前行(B2)的这个产品编号,在入库(D列)或出库(E列)里完全找不到对应的非空记录。这时,你需要回头检查一下原始数据是否录入完整。
当你的入库和出库记录分别放在不同的表格里时,上面两种单表操作的方法就不太适用了。这时,最好的策略是建立一个集中的“指挥部”——也就是独立的库存汇总表。
这个方法通过建立数据关联,让余量计算从分散变为集中管理:
第一步,新建一张“库存主表”,至少包含产品编号、产品名称和当前余量这几个核心字段。
第二步,分别在“入库表”和“出库表”里,增加一个【关联产品编号】字段,并将其设置为与“库存主表”中的产品编号双向关联。
第三步,在“库存主表”的【当前余量】列输入聚合公式:=SUM(SELECT(入库表.入库数量, 入库表.关联产品编号=库存主表.产品编号)) - SUM(SELECT(出库表.出库数量, 出库表.关联产品编号=库存主表.产品编号))。
整个链路要跑通,最关键的一环在于关联字段的准确性。务必确保子表(入库表、出库表)里填写的关联产品编号,与主表中的编号完全一致,连大小写都不能有差错。
如果你不想和公式打交道,追求极致的操作便捷性,那么千问表格内置的Agent规则引擎就是为你准备的。它属于一种低代码解决方案,设定好规则后,一切计算自动完成。
具体配置路径如下:进入表格设置,找到“自动化规则”并新建一条。
触发条件可以设为:“当‘入库表’或‘出库表’中任一记录被创建或更新时”。
执行动作则选择:“更新‘库存主表’中对应产品编号的‘当前余量’字段”。
最后,在公式字段中填入计算逻辑:SELECT(入库表.入库数量, 入库表.产品编号=当前行.产品编号)之和 - SELECT(出库表.出库数量, 出库表.产品编号=当前行.产品编号)之和。好消息是,在这里你不需要手动写SUM函数,Agent会自动识别并完成聚合计算。
这样一来,每当有新的出入库操作,余量就会在后台静默、准确地更新,真正实现了“设置一次,一劳永逸”。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述