在Excel中具有不同行的SUMIF变量列数

时间:2009-09-03 14:49:00

标签: excel excel-2003 formula excel-formula

我想基于一个值在Excel中汇总多个行。在下图中,您可以看到该表。

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

如果你这样做

= SUMIF(B5:B11, “开放式” 的,间接的(CONCATENATE( “C5”,ADDRESS(11,2 + C2))))

你得到25(Cell I2)(这是C5和C8的总和),而我实际想要的结果是50(C5 + D5的总和(1月和2月开放)和C8 + D8 (1月和2月开放))

希望有道理吗?

我期待着任何意见和建议。

干杯

尼克

alt text http://ntdd2425.fm.netbenefit.co.uk/table.png

编辑 - 我希望我能够在不创建中间列的情况下完成此操作。 Excel中的不一致是由于SUM似乎支持跨多个列求和,但SUMIF不支持求和。所以这确实有效:

= SUM(INDIRECT(CONCATENATE(ADDRESS(5,3), “:”,ADDRESS(5,2 + $ C $ 2))))

2 个答案:

答案 0 :(得分: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。数组的大小不匹配,因此重复它们。

答案 1 :(得分:0)

我认为通过两个步骤做起来会更容易。

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

= SUM(OFFSET(B5,0,1,1,$ C $ 2))

然后添加一个 SUMIF 函数,该函数以辅助列为目标。

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

SUMIF screenshot http://img200.imageshack.us/img200/4392/offset.png