0

我想根据一个值对 Excel 中的多行进行求和。在下图中,您可以看到表格。

我想在 F1 中输入一个值,其中包含 Jan ->(C2 中指定的月份 #)的值的总和,其中 Status 是 C1 中的值。

如果你这样做

=SUMIF(B5:B11,"open",INDIRECT(CONCATENATE("C5:",ADDRESS(11,2+C2))))

你得到 25(单元格 I2)(这是 C5 和 C8 的总和),而我真正想要的结果是 50(C5+D5(1 月和 2 月开放)和 C8+D8(1 月和 2 月开放)的总和一月和二月))

希望这有道理?

我期待任何意见,建议。

干杯

缺口

替代文字 http://ntdd2425.fm.netbenefit.co.uk/table.png

编辑 - 我希望我能够在不创建中间列的情况下做到这一点。Excel 中的不一致是因为 SUM 似乎支持跨多列求和,但 SUMIF 不支持。所以这确实有效:

=SUM(间接(连接(地址(5,3),":",地址(5,2+$C$2))))

4

2 回答 2

2

我建议将 SUM() 与数组一起使用:

  =SUM(C5:G11*(IF(COLUMN(C5:G11)<=($C$2+1),1,0)*IF($c$1=b5:b11,1,0)))

使用 Ctrl-Shift-Enter 输入它,使其作为数组公式输入。

YMMV,但它在这里进行了快速测试。

基本上,您将三个数组相乘:一个与您的数据相乘,一个与基于月份匹配列的 1 或 0 相乘,最后一个与基于状态过滤器的 1 或 0 相乘。数组的大小不匹配,因此它们被重复。

于 2009-09-03T16:17:12.360 回答
0

我认为分两步做会更容易。

添加一个带有OFFSET函数的辅助列来计算每一行的“年初至今”值。基于您的数据的公式将是:

=SUM(偏移量(B5,0,1,1,$C$2))

然后添加一个以帮助列为目标的SUMIF函数。

=SUMIF(B5:B11,$C$1,H5:H11)

SUMIF 截图 http://img200.imageshack.us/img200/4392/offset.png

于 2009-09-03T16:26:56.303 回答