根据另一行中的单元格匹配值对行中的范围求和

Sum a range from row, depending on cell matching value in another row

使用同一行中与 header 行中的值匹配的值对范围求和。

Header: 1  | 2  | 3  | 4  |.... Sum from

Row:    10 | 20 | 30 | 40 |..... 2 

在上面的示例中,我想对第 2 列 - 第 4 列 (20+30+40) 中的行值求和

如果行数求和为 3,我想对第 3 列 - 第 4 列 (30+40) 中的行值求和

所以我尝试从与列总和中的值相匹配的列号开始求和。

我试过了sumif

range = header range
criterion = sum from value
sum_range = row range

这仅 returns 与值的总和相匹配的单元格的值 所以如果 sum from 设置为 2,它只会产生 20,而不是 90(20+30+40)

使用 ADDRESS 构造范围,如:

=SUM(INDIRECT(ADDRESS(3, MATCH(B5, 1:1, 0), 4)&":"&
              ADDRESS(3, COLUMNS(1:1),      4)))

主题略有变化:

使用 INDIRECT 定义范围,以及起始单元格和结束单元格的地址。使用已有的信息。

=SUM(INDIRECT(address(row($B),B5+1,4) & ":" & address(row($B),B7+1,4)))


截图

最后我成功地解决了这个问题:

SUMIF($E:$N,">="&P4,E4:N4)

E3:N3 是 header 行

E4:N4 是要求和的行

P4 是值与 header

匹配的单元格

the">=" 可以进行调整,具体取决于您是要包含所选列还是只包含那些 'above'。