我已经有一段时间没有使用 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
答案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"))
:从前一个公式返回范围的引用。