我该如何把每件商品出售的所有不同比例的原材料加起来?

我该如何把每件商品出售的所有不同比例的原材料加起来?

我已经有一段时间没有使用 Excel/Sheets 了,目前我已经很生疏了,尽管我认为这有一个简单的解决方案。

我有一张表格,其中一列包含菜单上的每一项,旁边的行表示制作该项所需的每种原料的份量。

在一天结束时,我想在“销售量”单元格中输入当天的销售额,并以单独的行或列表形式列出所售每种原材料部分的总额

表格格式示例(显示的成分数量以克为单位):

物品 销售量 三文鱼 牛油果 螃蟹
加州卷 2 200 80 100
阿拉斯加卷 4 200 200 100
半份阿拉斯加卷 10 100 100 50
酸橘汁腌鱼 5 150 300

这就是我想在所有行末尾显示的内容

销售量 售出商品 三文鱼 牛油果 螃蟹
21 1800 2200 1060 200 1500

我希望我可以做一个 for 循环,并遍历每一行,将“销售量”单元格乘以每种使用的成分,然后将所有单元格的结果相加。

谢谢!

答案1

使用 SUMPRODUCT:

=SUMPRODUCT($B$2:$B$5,C2:C5)

在此处输入图片描述

如果产品的顺序不一样,那么我们可以添加INDEX/MATCH:

=SUMPRODUCT($B$2:$B$5,INDEX($C$2:$G$5,0,MATCH(B$8,$C$1:$G$1,0)))

INDEX/MATCH 将正确的列返回给 SUMPRODUCT。

在此处输入图片描述

答案2

假设结果应该在第 9 行,

  • 在 B9 上输入公式:
=SUM(B2:B5)
  • 在 C9 上输入公式:
=SUM($B$2:$B$5 * INDIRECT(CONCAT(CHAR(66 + MATCH(C8,$C$1:$G$1,0)),"2:",CHAR(66 + MATCH(C8,$C$1:$G$1,0)),"5")))

解释:

  • MATCH(C8,$C$1:$G$1,0):查找标准的索引。
  • CHAR(66 + MATCH(C8,$C$1:$G$1,0)):按字符数设置列。
  • CONCAT(CHAR(66 + MATCH(C8,$C$1:$G$1,0)),"2:",CHAR(66 + MATCH(C8,$C$1:$G$1,0)),"5"):构建范围。它返回一个字符串。
  • INDIRECT(CONCAT(CHAR(66 + MATCH(C8,$C$1:$G$1,0)),"2:",CHAR(66 + MATCH(C8,$C$1:$G$1,0)),"5")):从前一个公式返回范围的引用。

公式结果

相关内容