You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从大型库存数据集批量筛选对应需求量SKU的库位编号?

批量按需求数量提取SKU对应拣货库位的解决方案

Excel 方案

假设你的数据结构如下:

  • 库存数据集:A列=SKU,B列=库位编号(一个SKU对应多个库位时,每个库位单独占一行)
  • 需求列表:E列=目标SKU,F列=该SKU的需求数量

基础公式实现

在需要返回库位的单元格(如G2)输入以下公式,Excel 365/2021直接回车,旧版本按Ctrl+Shift+Enter触发数组计算,然后向下填充:

=IF(ROW(A1)<=$F2, IFERROR(INDEX($B:$B, SMALL(IF($A:$A=$E2, ROW($A:$A)), ROW(A1))), ""), "")

逻辑说明:

  1. IF($A:$A=$E2, ROW($A:$A)) 筛选出当前SKU在库存表中所有行的行号
  2. SMALL(..., ROW(A1)) 依次提取第1、2……N个匹配行的行号
  3. INDEX($B:$B, ...) 根据行号取出对应库位编号
  4. IF(ROW(A1)<=$F2, ...) 限制返回结果的数量不超过需求值,超出部分显示空值

批量生成对应行的技巧

如果不想手动下拉数百行,用SEQUENCE快速生成重复对应次数的SKU列表:

=TOROW(REPT(E2:E301&"|",F2:F301),,TRUE)

将该公式放在空白列,会生成一个按需求次数重复的SKU序列,拆分后得到完整待拣SKU列表,再用上述公式匹配库位即可。


Google Sheets 方案

沿用相同数据结构,用数组公式一步完成批量处理:

=ARRAYFORMULA(
  IFERROR(
    VLOOKUP(
      FLATTEN(REPT(E2:E301&"~",F2:F301)),
      {A2:A&"~", B2:B},
      2,
      FALSE
    )
  )
)

公式说明:

  • REPT(E2:E301&"~",F2:F301) 给每个SKU添加特殊分隔符(避免重名匹配错误),并按需求次数重复
  • FLATTEN 将二维重复结果转为一维列表
  • VLOOKUP 匹配库存表中对应的SKU,返回库位编号

超大型数据集优化

如果库存数据量极大,上述公式可能卡顿,先给库存表按SKU升序排序,再用以下方式提速:

  1. 用MATCH(E2,$A:$A,0)定位当前SKU在库存表中的首次出现行号
  2. 用COUNTIF($A:$A,E2)统计该SKU的总库位数量
  3. 用INDEX($B:$B, MATCH(E2,$A:$A,0)):INDEX($B:$B, MATCH(E2,$A:$A,0)+F2-1)直接提取前N个库位
    可将这些步骤组合为公式或用辅助列计算后引用,大幅提升处理速度。

内容的提问来源于stack exchange,提问作者Hamsan Venky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 23:30:24