![SUMPRODUCT,其中乘积是根据行计算的](https://linux22.com/image/1448400/SUMPRODUCT%EF%BC%8C%E5%85%B6%E4%B8%AD%E4%B9%98%E7%A7%AF%E6%98%AF%E6%A0%B9%E6%8D%AE%E8%A1%8C%E8%AE%A1%E7%AE%97%E7%9A%84.png)
我有一个范围 AG6:AS38。它看起来像这样:
AG AH AI AJ AK AL AM AN AO AP AQ AR AS
--------------------------------------------------------
6 | 1 A B C D ...
7 | 2 C A D B ...
8 | 3 A W Q A ...
9 | 1 G A W Y ...
10 | 2 ...
11 | 3
12 | 1
13 | 2
14 | 3
15 | 1
16 | 2
...| 3
我需要一个 SUMPRODUCT() 或类似的东西,对于 AH6:AS36 中值为“A”的每个单元格,将 AG 中的相应值添加到总和中。因此,它基本上会计算每行中的 A 的数量,将计数乘以 AG,然后将其添加到总和中。在上面的例子中,如果缺失的单元格都不是 A,它将计算 10。1+2+3+3+1。
我该怎么做?一个想法是使用 COUNTIF(AG6:AS6,'A') 并将其放入 AF6 并复制下来,然后使用 SUMPRODUCT(AF6:AF38,AG6:AS38),但我不能使用临时列,因为 A 只是一个任意示例,我需要使用许多不同的值来执行此操作,而不仅仅是 A。
本质上,AG 列代表该行上项目的“权重”,因此它计算某个项目在该范围内的受欢迎程度的加权总和。
答案1
SUMPRODUCT
只要语法正确,就可以使用,就像这样
=SUMPRODUCT((AH6:AS36="A")*AG6:AG36)
事实上SUM
也有效,但如果使用 SUM,则需要“数组输入”,即
=SUM((AH6:AS36="A")*AG6:AG36)
已确认CTRL++SHIFTENTER