You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过Excel公式实现按仓库-商品-日期组合填充24小时库存及在库率数据?

解决Excel库存小时数据补全的两种简便方案

嘿,这个场景我太熟悉了——处理时间序列的库存快照补全,用Excel的公式或者Power Query都能轻松搞定,针对你的大型数据集,我更推荐Power Query(效率更高),不过先给你两种方案,按需选择:

一、公式方案(适合中小数据集)

步骤1:生成24小时基础表

首先你需要先构建一个包含所有仓库-商品-日期组合+0-23小时的基础表格:

  • 把原始数据里的唯一仓库-商品-日期组合提取出来(可以用数据透视表的行区域选这三列,然后复制结果)
  • 给每个组合复制24行,然后在「快照小时」列填充0到23的序列(用=SEQUENCE(24,1,0)快速生成)

步骤2:填充库存数量和在库率

假设原始数据在Sheet1,列对应:A=仓库、B=商品、C=日期、D=快照小时、E=库存数量、F=在库率;基础表在Sheet2,对应列A=仓库、B=商品、C=日期、D=快照小时。

Sheet2的E2(库存数量)输入公式:

=IFERROR(XLOOKUP(1,(Sheet1!A:A=A2)*(Sheet1!B:B=B2)*(Sheet1!C:C=C2),Sheet1!E:E),0)

Sheet2的F2(在库率)输入公式:

=IFERROR(XLOOKUP(1,(Sheet1!A:A=A2)*(Sheet1!B:B=B2)*(Sheet1!C:C=C2),Sheet1!F:F),0)

然后下拉填充所有行即可。

逻辑说明

  • XLOOKUP会匹配当前仓库-商品-日期的第一条有效数据,把对应的库存/在库率复制到该组合的所有24小时行
  • 如果该组合完全没有数据,IFERROR会返回0,符合你默认缺货的要求

二、Power Query方案(适合大型数据集,自动生成+补全)

如果你的数据量很大,手动生成基础表太麻烦,用Power Query可以一键完成所有步骤:

步骤1:导入数据到Power Query

选中原始数据区域,点击「数据」选项卡 → 「从表格/区域」(勾选「我的表格有标题」),进入Power Query编辑器。

步骤2:按仓库-商品-日期分组

点击「转换」选项卡 → 「分组依据」:

  • 分组列:选择「仓库」「商品」「日期」
  • 新列名:输入明细
  • 操作:选择「所有行」
  • 点击确定,你会看到每个组合对应一行,包含该组合的所有原始数据行。

步骤3:生成24小时序列

添加自定义列:点击「添加列」→ 「自定义列」,输入公式:

{0..23}

命名为「快照小时」,然后点击该列右侧的展开按钮,选择「展开到新行」。

步骤4:填充库存和在库率

再添加两个自定义列:

  1. 库存数量:
= if Table.IsEmpty([明细]) then 0 else [明细][库存数量]{0}
  1. 在库率:
= if Table.IsEmpty([明细]) then 0 else [明细][在库率]{0}

步骤5:清理并加载数据

删除「明细」列,然后点击「主页」→ 「关闭并上载」,Excel会自动生成一个新表,包含所有仓库-商品-日期的24小时补全数据。

逻辑说明

  • 自动遍历所有组合,生成24小时行
  • 有数据的组合直接取第一条数据的库存/在库率填充所有小时
  • 无数据的组合自动填充0,完全符合你的需求

内容的提问来源于stack exchange,提问作者Mackenzie Brigham

火山引擎 最新活动