如何在Excel中基于双条件提取数据并计算Sales表利润?
同一工作表中销售表利润计算方案
假设工作表内包含两张表格:
- Sales(销售表):列包含
Type(产品类型)、Size(规格)、Price(售价)、Profit(利润,待计算) - Production(生产成本表):列包含
Type(产品类型)、Size(规格)、Cost(生产成本)
以下是两种实现利润计算的方法,核心逻辑为:匹配Type+Size提取对应生产成本,用售价减去成本得到利润。
方法1:XLOOKUP函数(Excel 365/2021及以上版本适用)
在Sales表第一个利润单元格(例如D2)输入公式后下拉填充:
=B2 - XLOOKUP(1, (Production!$A$2:$A$100=A2)*(Production!$B$2:$B$100=B2), Production!$C$2:$C$100)
- 逻辑:通过
(Production!$A$2:$A$100=A2)*(Production!$B$2:$B$100=B2)生成匹配条件数组,找到同时符合产品类型和规格的记录,提取对应生产成本,最后用售价减去成本得到利润。
方法2:INDEX+MATCH组合(全Excel版本兼容)
在Sales表第一个利润单元格输入公式后下拉填充:
=B2 - INDEX(Production!$C$2:$C$100, MATCH(1, (Production!$A$2:$A$100=A2)*(Production!$B$2:$B$100=B2), 0))
- 逻辑:先用
MATCH找到同时匹配Type和Size的行号,再用INDEX提取该行的生产成本,最后完成利润计算。
注意事项
- 请根据实际数据范围调整公式中的单元格区域(例如
Production!$A$2:$A$100),也可直接使用整列(如Production!$A:$A) - 确保Production表中
Type+Size的组合唯一,避免多匹配导致结果偏差 - 若需处理无匹配的情况,可嵌套
IFERROR返回提示文本:
=IFERROR(B2 - XLOOKUP(1, (Production!$A$2:$A$100=A2)*(Production!$B$2:$B$100=B2), Production!$C$2:$C$100), "无对应成本数据")
内容的提问来源于stack exchange,提问作者MoshinK
相关产品推荐
相关产品推荐

