1

在 Google Docs(与 Excel 和其他电子表格程序共享许多命令)中有以下功能:

  • SUMIF:接受一个谓词和一个范围,并将谓词中满足该谓词的所有项目相加。
  • SUMPRODUCT:取 2 个列范围,在每一行将元素乘以另一个范围内的相邻元素,然后将所有这些相加。
+-----+------------------+------+------------------ +
| 数量 | 产品 | 项目 | 每个产品的项目 |
+-----+------------------+------+------------------ +
| 4 | foo 盒 | 富 | 10 |
| 8 | 富 | 富 | 1 |
| 2 | 酒吧盒| 高分辨率照片| CLIPARTO 酒吧 | 10 |
| 1 | 吧台包| 设置 | 1 |
+-----+------------------+------+------------------ +

所以我有一个产品的订单清单(基本上是库存)。每个产品包含一个或多个项目。大多数时候只是一种类型的项目。除了包含 1 个 foo 和 1 个 bar 的 foobar 包。

我想生成一个表格来总结我们订购的每个项目的数量。想要:

+--------+----------------+
| 项目 | 净数量 |
+--------+----------------+
| 富 | 49 (=4*10+8+1) |
| 酒吧 | 29(=2*10+1) |
+--------+----------------+

括号中的内容不是输出表的一部分,只是为了明确每个数字的来源。

如何生成这样的表?似乎可以通过使用 If、Sum 和 Product 来完成。使用 Ifs 使其将名称与我正在反击的关键字“set”的项目中的任何一个不匹配的事物计数为零,然后对结果进行 SUMPRODUCTING。但是我[我不确定如何在一行中完成此操作

我不太了解 If,或者一般在电子表格中做复杂的事情

这是一件一次性的事情,所以我不想去努力创建一个数据库,然后导出一个电子表格。

4

1 回答 1

2

受此博客的启发,这适用于您的数据:

=arrayformula(sumproduct(
 (($C$2:$C$5="foo")+($C$2:$C$5="set")), $A$2:$A$5, $D$2:$D$5))
于 2012-06-15T01:38:57.160 回答