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

Excel中如何用查找函数跨表值相乘求和以自动计算年度物料需求

解决Excel跨表自动化计算年度物料需求的问题

看起来你卡在SUMPRODUCT里的MATCH匹配逻辑上了,核心问题是第二个INDEX里的MATCH(TRUE;$B$3:$E$5>0;0)完全偏离了你的需求——它是在找物料用量表里第一个非零的列,而不是匹配你要计算的年度,这直接导致列匹配错误,结果自然不对。

先理清楚核心逻辑:要计算某年度某物料的总需求量,本质是把每个产品的「该年度销量」乘以「该产品对应该物料的用量」,然后把所有乘积加起来。因为产品在两个表的顺序不一致,所以需要精准匹配产品、年度、物料三个维度。

修正后的SUMPRODUCT公式(兼容所有Excel版本)

假设你的表格结构是:

  • 销量表(表1):A19:A22是产品名,B18:E18是年度表头,B19:E22是各产品年度销量
  • 物料用量表(表2):A3:A5是产品名,B2:E2是物料表头,B3:E5是各产品的物料用量
  • 需求计算表(表3):A11:Axx是物料名,B10:E10是年度表头,需要计算的单元格从B11开始

B11(对应物料A、2021年度)输入以下公式:

=SUMPRODUCT(
    ($A$19:$A$22=$A$3:$A$5)*  // 匹配两个表中的对应产品
    ($B$18:$E$18=B$10)*$B$19:$E$22*  // 匹配当前年度,提取对应销量
    ($B$2:$E$2=$A11)*$B$3:$E$5  // 匹配当前物料,提取对应用量
)

公式解释

  • ($A$19:$A$22=$A$3:$A$5):生成一个数组,两个表中产品名匹配的位置为1,不匹配为0,用来筛选有效的产品数据
  • ($B$18:$E$18=B$10)*$B$19:$E$22:定位到当前计算的年度列,提取所有产品的该年度销量
  • ($B$2:$E$2=$A11)*$B$3:$E$5:定位到当前计算的物料列,提取所有产品的该物料用量
  • SUMPRODUCT会自动把对应位置的销量和用量相乘,再把所有乘积加总,得到最终的年度物料需求

自动化填充

输入完第一个单元格的公式后,直接横向拖动填充到同一行的其他年度列,再纵向拖动填充到其他物料行即可——公式里的相对引用(B$10$A11)会自动适配对应的年度和物料,完全不需要手动调整,哪怕产品数量超过100个也能正常工作。

额外优化(Excel 365/2021用户)

如果你用的是较新版本的Excel,也可以用XLOOKUP简化公式,可读性更强:

=SUM(XLOOKUP($A$3:$A$5, $A$19:$A$22, XLOOKUP(B$10, $B$18:$E$18, $B$19:$E$22)) * XLOOKUP($A11, $B$2:$E$2, $B$3:$E$5))

内容的提问来源于stack exchange,提问作者D. Nijland

火山引擎 最新活动