SUMPRODUCT,其中乘积是根据行计算的

SUMPRODUCT,其中乘积是根据行计算的

我有一个范围 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

相关内容