SUMPRODUCTIF – 库存电子表格
在Google文档(与excell和其他电子表格程序共享许多命令)中有以下function:
- SUMIF:接受一个谓词和一个范围,并将符合该谓词的谓词中的所有项目相加。
- SUMPRODUCT:取两列的范围,每一行在其他范围内由它旁边的元素倍增元素,然后将所有这些加起来。
+ ----- + ----------------- + ------ + ------------------ + | qty | 产品| item | 每个产品的项目| + ----- + ----------------- + ------ + ------------------ + | 4 | box of foo | foo | 10 | | 8 | foo | foo | 1 | | 2 | 一盒酒吧| 酒吧| 10 | | 1 | foorbar包| 设置| 1 | + ----- + ----------------- + ------ + ------------------ +
所以我有一个订单(基本上是库存),产品。 每个产品都包含一个或多个项目。 大部分时间只是一个单一的types的项目。 除了包含1个foo和1个酒吧的foobar包。
我想要生成一张表,总结我们订购的每件产品的数量。 哪个会喜欢:
+ ------ + ---------------- + | Item | 净数量| + ------ + ---------------- + | foo | 49(= 4 * 10 + 8 + 1)| | 酒吧| 29(= 2 * 10 + 1)| + ------ + ---------------- +
括号内的东西不是输出表的一部分,只是要明确每个数字来自哪里。
我怎样才能生成这样的表格? 似乎可以通过使用If,Sum和Product来实现。 使用Ifs来计算没有匹配关键字“set”的项目名称的事物为零,然后SUMPRODUCTING结果。 但我不知道如何完成这一行
我不太了解If,或者在电子表格中做复杂的事情
这是一个一次性的事情,所以我不想去创build一个数据库,然后导出一个电子表格。
受这个博客的启发,这适用于你的数据:
=arrayformula(sumproduct( (($C$2:$C$5="foo")+($C$2:$C$5="set")), $A$2:$A$5, $D$2:$D$5))