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))